#include stdio.h
创新互联主要从事网站建设、成都网站建设、网页设计、企业做网站、公司建网站等业务。立足成都服务广安,十载网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:18982081108
#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语言中 有切割字符串的函数啊!\x0d\x0a\x0d\x0astrtok函数(const char *str, const char *ch)\x0d\x0a\x0d\x0a第一个是字符串,第二个是以那个字符做切割。\x0d\x0a\x0d\x0a例子:\x0d\x0a#include \x0d\x0a#include \x0d\x0aint main(void)\x0d\x0a{\x0d\x0achar s[] = "123-sldkf-123ls-343434-dfjdlkfj-dflcmvn";\x0d\x0achar *delim = "-";\x0d\x0achar *p;\x0d\x0aprintf("%s ", strtok(s, delim));\x0d\x0awhile((p = strtok(NULL, delim))\x0d\x0aprintf("%s ", p);\x0d\x0aprintf("\n");\x0d\x0areturn 0;\x0d\x0a} \x0d\x0a\x0d\x0achar s[] = "dlkjf-sdlkfjsdf\lsdkljfl'sldkjf\sdkfjsdlf\lskdjfls";\x0d\x0a如果想用-和\两个符号切割的话\x0d\x0achar *delim = "-\";\x0d\x0a这样就可以了
这个是用c++写的不过和c的原理也差不多我运行过了,有什么问题再问吧,c不知道能否运行,不过现在c/c++程序设计试验系统通常都有嵌套c++,你打开c界面时单击vc6.0创建一个项目运行就可以了。
#include iostream
using namespace std;
char** split(char p[],char c,int k)
{
int i,m,j;
char **q;
q=(char**)new char*[k];
for(i=0;ik;i++)
q[i]=(char*)new char*[20];
i=0;
j=0;
m=0;
while(p[i])
{
if(p[i]!=',')
{
q[j][m++]=p[i++];
}
else
{
q[j][m]='\0';
j++;
m=0;
i++;
}
}
q[k-1][m]='\0';
for(i=0;i4;i++)
{
coutq[i];
coutendl;
}
return q;
}
void main()
{ int k;
char p[]="ab,cde,efgh,ghi32";
char c=',';
int i=0,j=0,m=0;
while(p[i])
{
if(p[i]==',')
j++;
i++;
}
j=j+1;//接受到底有多少个单词在分割后通过逗号去判断
k=j;
char**q=split(p,c,k);
printf("\n");
for(i=0;i4;i++)
{
coutq[i];
coutendl;
}
}