重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
用strtok函数实现吧。
创新互联专注于宜宾企业网站建设,成都响应式网站建设,商城网站建设。宜宾网站建设公司,为宜宾等地区提供建站服务。全流程按需求定制开发,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
void split( char **arr, char *str, const char *del)//字符分割函数的简单定义和实现
{
char *s =NULL;
s=strtok(str,del);
while(s != NULL)
{
*arr++ = s;
s = strtok(NULL,del);
}
}
int main()
{
int i;
char *myArray[4];
char s[] = "张三$|男$|济南$|大专学历$|";
memset(myArray, 0x0, sizeof(myArray));
split(myArray, s, "$|");
for (i=0; i4; i++)
{
printf("%s\n", myArray[i]);
}
return 0;
}
#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;
}
#includeiostream
#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();
}
这个函数在纯C++环境中的string类中是不存在的,只有在C++/CLR环境中才有这个函数的。如果想在C语言中使用切割字符串函数,可以使用一个库函数char *strtok(char *s, const char *delim)来实现,分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。另外,在C语言中要包含#include string.h头文件,而在C++语言中要包含#include string头文件,这样才可以使用这个函数。 还有在最新版的linux环境下,这个函数已经不再使用,由速度更快的strsep()函数来代替它。