函数sscanf小结
1.sscanf用于處理固定格式的字符串,包含在頭文件<cstdio>中,函數(shù)原型為:
? ? ? ? ? ? ? ?int sscanf(const char *buffer,const char*format,[]argument? ]...);
其中:buffer代表著要存儲(chǔ)的數(shù)據(jù),format 代表格式控制字符串,argument選擇性設(shè)定字符串(分割之后存儲(chǔ)數(shù)據(jù)的地址);
返回值:成功轉(zhuǎn)換的值的個(gè)數(shù),失敗則返回-1;
函數(shù)功能:sscanf會(huì)從buffer里讀取數(shù)據(jù),依照f(shuō)ormat的格式將數(shù)據(jù)寫入argument中;
2.從string字符串中獲得const char*,使用string.data()或者string.c_str()(最好使用這個(gè));
二者的區(qū)別在于:string.data()只是返回原始數(shù)據(jù)序列,并不把‘\0’來(lái)作為字符串結(jié)束標(biāo)志;
string.c_str()是標(biāo)準(zhǔn)的做法:返回的const char*是一個(gè)合法的用‘\0’終止的C兼容字符串。
其實(shí)c_str()包含了data(),具體實(shí)現(xiàn)如下:
const char*c_str()const{
? ? ? ? ? ? ? ? ?if(length()==0)
? ? ? ? ? ? ? ? ? ? ? ? return "";
? ? ? ? ? ? ? ? ?terminate();
? ? ? ? ? ? ? ?return data();
}
另外一個(gè)重要的是:只在需要時(shí)才使用c_str()或者data()得到字符串,每調(diào)用一次,下次再調(diào)用就失效了。
?
?
?
總結(jié)
以上是生活随笔為你收集整理的函数sscanf小结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: vivo C/C++工程师 HR视频面试
- 下一篇: 成都大熊猫繁育研究基地有停车场吗