c语言分割函数 c++分割

关于c语言字符串中切割函数strtok的用法

strtok()函数并不像你想的那样可以一次切割字串。需要多次循环,第二次时需要用 p = strtok(NULL, " "); 这样的 形式。

成都创新互联公司服务项目包括北塔网站建设、北塔网站制作、北塔网页制作以及北塔网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,北塔网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到北塔省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

void main()

{ char test1[] = "Hello C World";

char *p;

p = strtok(test1, " ");

while(p)

{

printf("%s\n", p);

p = strtok(NULL, " ");

}

return 0;

}

运行结果:

Hello

C

World

C语言如何拆分2个子函数

/*如何把上面这个转置3*3 二维数组程序转换成俩个子函数*/

#includestdio.h

int arr[3][3];//将数组arr定义成一个全局变量

int main()

{

int sr();

int sc();

sr();//输入二维数组

sc();//输出转置后的二维数组

}

int sr(){

int i,j;

for(i=0;i3;i++)

for(j=0;j3;j++)

scanf("%d",arr[i][j]);

return 0;

}

int sc(){

int i,j;

for(i=0;i3;i++)

{

for(j=0;j3;j++)

printf("%d ",arr[j][i]);  

printf("\n");

}

return 0;

}

运行结果:

严格意义上,你的这个转置并没有改变arr数组原来的值,换句话说,执行完sc后,arr的值并没有改变成转置数组。

可以利用中间数组来完成数组转置,修改如下:

如何把上面这个转置3*3 二维数组程序转换成俩个子函数*/

#includestdio.h

int arr[3][3];//将数组arr定义成一个全局变量

int main()

{

int sr();

int sc();

void printfarr(int arr[3][3]);

sr();//输入二维数组

sc();//转置

printfarr(arr);//输出数组

return 0;

}

int sr(){

int i,j;

for(i=0;i3;i++)

for(j=0;j3;j++)

scanf("%d",arr[i][j]);

return 0;

}

int sc(){

int i,j;

int br[3][3];

for(i=0;i3;i++)

for(j=0;j3;j++)

br[i][j]=arr[j][i];//转置后的数组暂放在数组br中

for(i=0;i3;i++)

for(j=0;j3;j++)

arr[i][j]=br[i][j];//将转置后的数组赋值给arr;

return 0;

}

void printfarr(int arr[3][3]){//输出数组

int i,j;

for(i=0;i3;i++)

{

for(j=0;j3;j++)

printf("%d ",arr[i][j]);  

printf("\n");

}

}

结果和上边一样。

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;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;

}

}

C语言有没有把字符串拆分为数组的函数?

用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;

}

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;

}


网站栏目:c语言分割函数 c++分割
网站地址:http://scyanting.com/article/doddogs.html