十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
#includeiostream
创新互联公司专业IDC数据服务器托管提供商,专业提供成都服务器托管,服务器租用,德阳机房托管,德阳机房托管,成都多线服务器托管等服务器托管服务。
#includevector
#includesstream
usingnamespacestd;
intmain()
{
strings;
vectorintv;
cins;
//将读入的字符串转化成is流
istringstreamis(s);
intinter;
charch;
while(isinter)//只能读出is流中的一个整形读进inter
{
v.push_back(inter);
isch;//然后读一个字符型读进ch
}
for(inti=0;iv.size();i++)
coutv[i]"";
coutendl;
return0;
}
扩展资料
C语言的字符串按照指定字符串分割操作
#includestdio.h
#pragmawarning(disable:4996)
#includestdlib.h
intmain()
{
charstr[]="我,是,中国,程序员";
char*ptr;
char*p;
printf("开始前:str=%s\n",str);
printf("开始分割:\n");
ptr=strtok(str,",");
while(ptr!=NULL){
printf("ptr=%s\n",ptr);
ptr=strtok(NULL,",");
}
getchar();
}
#include stdio.h
#include string.h
// 将str字符以spl分割,存于dst中,并返回子字符串数量
int split(char dst[][80], char* str, const char* spl)
{
int n = 0;
char *result = NULL;
result = strtok(str, spl);
while( result != NULL )
{
strcpy(dst[n++], result);
result = strtok(NULL, spl);
}
return n;
}
int main()
{
char str[] = "what is you name?";
char dst[10][80];
int cnt = split(dst, str, " ");
for (int i = 0; i cnt; i++)
puts(dst[i]);
return 0;
}
不需要专门分割,C语言里面本来就是用字符数组来保存的,如:char a[20]="Hello world!";这个字符串,char[0]就是H,char[1]就是e。
如果要分割子串,可以使用strtok函数。
char *strtok(char *s, char *delim);
分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。
首次调用时,s指向要分解的字符串,之后再次调用要把s设成NULL。
strtok在s中查找包含在delim中的字符并用NULL('')来替换,直到找遍整个字符串。
使用strtok函数即可实现分割字符串。
1、strtok函数:
原型:char *strtok(char s[], const char *delim);
功能:将一个字符串分解为一组字符串,s为要分解的字符串,delim为分隔符字符串;
说明:当strtok函数在参数s的字符串中发现参数delim中包含的分割字符时,则会将该字符改为\0 字符。在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回指向被分割出片段的指针;
头文件:string.h;
返回值:从字符串s开头开始的一个个被分割的字符串。分割结束时,返回NULL。所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。
2、例程:
#includestdio.h
#includestring.h
int main(){
char input[16]="abc,d,ef,g";//待分解字符串
char* delim=",";//分隔符字符串
char* p=strtok(input,delim);//第一次调用strtok
while(p!=NULL){//当返回值不为NULL时,继续循环
printf("%s\n",p);//输出分解的字符串
p=strtok(NULL,delim);//继续调用strtok,分解剩下的字符串
}
return 0;
}