本文共 659 字,大约阅读时间需要 2 分钟。
string strContent ="101;231;54;3;";string strTmp;std:vectoritemVec;char szContentItem[128];string::szie_type nIndex;while((nIndex = strContent.find(";")) != string::npos){ int num; strTmp = strContent.substr(0,nIndex); strncpy(szContentItem,strTmp.c_str(),strTmp.length()+1); sscanf(szContentItem,"%d",&num); itemVec.push_back(num); strContent=strContent.substr(nIndex+1);}
这里有几个知识点
string:size_type在不同的机器上长度是可以不同的
我们在使用string::find函数的时候,它返回的是找到的第一个匹配的下标,从0开始,比如24;;785;;2
找;; 则返回的值为2
当find找不到所需要的字符时,返回npos
string是以\0结尾的,如果string s = "hello \0 world";
cout<<s<<endl;
则只会输出hello
如果要把整个string的内容复制,长度必须是length()+1,得把\0复制进来
sscanf是从一个字符串读进与指定格式相符的数据
转载地址:http://igzvf.baihongyu.com/