c语言中 如何分割字符串

RT 一个string类型的字符串 如aa,bb,cc,dd通过逗号隔开 如何将aa bb cc和dd 分别放入其他的变量里面

第1个回答  2014-04-11
c语言中没有 string class, 假定你指 char 字符串。
用 sscanf 方法可以分割。
char str2[]="aa 123,bb 456,cc 789,dd 000";
按逗号分割为4 部分:
aa 123
bb 456
cc 789
dd 000
-----------------
char str[]="aa,bb,cc,dd";
按逗号分割为4 部分:
aa
bb
cc
dd
-------------------------
#include <stdio.h>
main()
{
char str[]="aa,bb,cc,dd";
char str2[]="aa 123,bb 456,cc 789,dd 000";
char s[4][10];
int i;
sscanf(str,"%[^,],%[^,],%[^,],%[^,]",s[0],s[1],s[2],s[3]); // 第1种方法
for (i=0;i<4;i++) printf("%s\n",s[i]);
sscanf(str2,"%[^,],%[^,],%[^,],%[^,]",s[0],s[1],s[2],s[3]); // 第1种方法
for (i=0;i<4;i++) printf("%s\n",s[i]);
//-----------
for (i=0;i<strlen(str);i++) if (str[i]==',') str[i]=' '; // 第2种方法--替换成空格分隔
sscanf(str,"%s %s %s %s",s[0],s[1],s[2],s[3]);
for (i=0;i<4;i++) printf("%s\n",s[i]);
return 0;
}本回答被网友采纳
第2个回答  2014-04-11
#include<stdio.h>
#include<string.h>
int main()
{
char str[]="aa,bb,cc,dd";
char newstr[99]="";
int i,j,k=0;
for(i=strlen(str)-1;i>=0;i--)
{
if(str[i]==',')
{
for(j=i+1,k=0;str[j];j++)
{
newstr[k++]=str[j];//复制逗号后面
}
newstr[k]=0;
puts(newstr);
str[i]=0;//删掉逗号后面
}
}
puts(str);
    return 0;
}

相似回答
大家正在搜