#include<iostream>
#include<vector>
#include<sstream>
usingnamespacestd;
intmain()
{
strings;
vector<int>v;
cin>>s;
//将读入的字符串转化成is流
istringstreamis(s);
intinter;
charch;
while(is>>inter)//只能读出is流中的一个整形读进inter
{
v.push_back(inter);
is>>ch;//然后读一个字符型读进ch
}
for(inti=0;i<v.size();i++)
cout<<v[i]<<"";
cout<<endl;
return0;
}
扩展资料
C语言的字符串按照指定字符串分割操作
#include<stdio.h>
#pragmawarning(disable:4996)
#include<stdlib.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();
}
C语言中要分割以逗号分隔的各个子串可以使用strtok()函数,函数原型:
char* strtok (char* str,constchar* delimiters );函数功能:
切割字符串,将str切分成一个个子串
函数参数:
str:在第一次被调用的时间str是传入需要被切割字符串的首地址;在后面调用的时间传入NULL。
delimiters:表示切割字符串(字符串中每个字符都会 当作分割符)。
函数返回值:
当s中的字符查找到末尾时,返回NULL;
如果查不到delimiter所标示的字符,则返回当前strtok的字符串的指针。
参考代码:
运行结果:
注意,strtok()函数非线程安全函数,在多线程环境下可以使用strtok_r()代替,函数原型:
char *strtok_r(char *str, const char *delim, char **saveptr);使用方法类似,只需要多定义一个字符指针,在每次调用前作为参数传递其地址即可,参考代码:
#include <stdio.h>就是用scanf输入一行“1,2,3,4"把这四个数据存到数组该怎么写
追答要加地址符的