c语言有没有字符分割函数 c语言文本分割

C语言分割字符串

使用strtok函数即可实现分割字符串。

创新互联-专业网站定制、快速模板网站建设、高性价比达孜网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式达孜网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖达孜地区。费用合理售后完善,10余年实体公司更值得信赖。

1、strtok函数:

原型:char *strtok(char s[], const char *delim);

功能:将一个字符串分解为一组字符串,s为要分解的字符串,delim为分隔符字符串;

说明:当strtok函数在参数s的字符串中发现参数delim中包含的分割字符时,则会将该字符改为\0 字符。在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回指向被分割出片段的指针;

头文件:string.h;

返回值:从字符串s开头开始的一个个被分割的字符串。分割结束时,返回NULL。所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。

2、例程:

#includestdio.h

#includestring.h

int main(){

char input[16]="abc,d,ef,g";//待分解字符串

char* delim=",";//分隔符字符串

char* p=strtok(input,delim);//第一次调用strtok

while(p!=NULL){//当返回值不为NULL时,继续循环

printf("%s\n",p);//输出分解的字符串

p=strtok(NULL,delim);//继续调用strtok,分解剩下的字符串

}

return 0;

}

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语言中字符切割函数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++

#include iostream

#include string

#include vector

using namespace std;

//把字符串s按照字符串c进行切分得到vector_v 

vectorstring split(const string s, const string c){

vectorstring v;

int pos1=0,pos2;

while((pos2=s.find(c,pos1))!=-1){

v.push_back(s.substr(pos1, pos2-pos1));

pos1 = pos2 + c.size();

}

if(pos1 != s.length())

v.push_back(s.substr(pos1));

return v;

}

int main()

{

string input="张三$|男$|济南$|大专学历$|";

vectorstring  myArray=split(input,"$|");

for(int i=0;imyArray.size();i++){

coutmyArray[i]endl;

}

}

/*

张三

济南

大专学历

*/


名称栏目:c语言有没有字符分割函数 c语言文本分割
文章转载:http://cdiso.cn/article/hhsoeo.html

其他资讯