剛開始接觸C++,很多不懂的地方,翻看老大給的代碼其中 year = atoi(dateStr.substr(0, 4).c_str());雲裡霧裡。
year = atoi(dateStr.substr(0, 4).c_str());
裡面包含三個函數,分別是atoi(),substr(),c_str().
百度:
atoi()函數原型為: int atoi(char *str),用途是將字符串轉換成一個整數值,str是待轉化成整數值的字符串.成功則返回轉化後的整數值,失敗返回0.
substr()函數原型為:basic string::substr(string,start,length),也可把string移到外面,為string &a,a.substr(start,length),其中a是待截取的字符串,start表示從截取開始的前一位,length表示截取長度,例如string &a="hello world",則a.substr(6,5)=world.
c_str()函數原型為:const char *c_str(),如果要將string對象,轉化為char*對象,c_str()提供了這樣一種方法,它返回一個客戶程序可讀不可改的指向字符數組的指針。
所以year=atoi(dateStr.substr(0,4).c_str())的作用就是,截取string型的對象dateStr,並轉化為char*對象,然後將此字符串轉換成一個整數值,賦值給year(year是int型).