本文目录一览:
1、c语言自己编写一个split字符串分割函数
2、C语言中字符切割函数split的实现是什么?
3、C语言中字符切割函数split的实现
c语言自己编写一个split字符串分割函数
这个是用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;i<k;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;i<4;i++)
{
cout<<q[i];
cout<<endl;
}
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;i<4;i++)
{
cout<<q[i];
cout<<endl;
}
}
C语言中字符切割函数split的实现是什么?
c语言中 有切割字符串的函数啊!
strtok
函数(const char *str
, const char *ch
)
第一个是字符串,第二个是以那个字符做切割。
例子:
#include <stdio.h>
#include <string.h>
int main(void)
{
char s[] = "123-sldkf-123ls-343434-dfjdlkfj-dflcmvn";
char *delim = "-";
char *p;
printf("%s ", strtok(s, delim));
while((p = strtok(NULL, delim)))
printf("%s ", p);
printf("\n");
return 0;
}
如果想用 -
和 \
两个符号切割的话:
char s[] = "dlkjf-sdlkfjsdf\lsdkljfl'sldkjf\sdkfjsdlf\lskdjfls";
char *delim = "-\\";
这样就可以了。
C语言中字符切割函数split的实现
#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;
}