C++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含这个头文件。
istringstream类用于执行C++风格的串流的输入操作。 ostringstream类用于执行C风格的串流的输出操作。
strstream类同时可以支持C风格的串流的输入输出操作。 istringstream的构造函数原形如下:
istringstream::istringstream(string str);
该构造函数只能拆分以空格分割的字符串,其余分隔符需要先进行转换
示例代码:
#include#include #include using namespace std; int main() { string str="1202,12345,chaihdoiawh"; for(int i=0; i >s) { cout< 运行结果:
#include#include #include char sU[]="http://***.***.***publicservice?restype=geotiff&action=get&path=202112355.tif&encoding=utf-8"; char *getUrlPath(char *sUrl,char *UrlPath) { char splite[1024],*UrlName,append[80]; int Length,num,sNum; static char finish[80]; finish[0]=0; UrlName=strchr(sUrl,'?'); if (!UrlName) return finish; strncpy(splite,UrlName,1023); splite[1023]=0; splite[0]='&'; append[0]='&'; strncpy(append+1,UrlPath,77); append[78]=0; strcat(append,"="); Length=strlen(append); UrlName=strstr(splite,append); if (!UrlName) return finish; UrlName=UrlName+Length; num=0; while (1) { if (UrlName[num]=='&') {UrlName[num]=0;break;} if (UrlName[num]==0) break; if (num>=79) {UrlName[num]=0;break;} num++; } if (num>0) { strcpy(append,UrlName); Length=0; UrlName=append; while (1) { k=sscanf(UrlName,"%%%2x",&num); if (1==k) { finish[Length++]=(char)num; UrlName+=3; } else if (0==sNum) { finish[Length++]=UrlName[0]; UrlName++; } else break; } finish[L]=0; } return finish; } int main() { printf("path=%sn",getUrlPath(sU,"path")); return 0; } //path=202112355.tif



