c语言 讲一个字符串str以空格为分割,分割后输出到一个一维数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c语言 讲一个字符串str以空格为分割,分割后输出到一个一维数组相关的知识,希望对你有一定的参考价值。

例如 str="1 2 3 4 5 6"
输出数组 a[]=1,2,3,4,5,6
程序怎么写

一个函数搞定

#include <stdio.h>
int convert(char *s, int* a)

int t = 0, i = 0, r = 0;
while(1)

if(s[i] == \' \' || s[i] == 0)

a[t++] = r;
r = 0;

else if(s[i] <= \'9\' && s[i] >= \'0\')

r = r*10 + s[i] - \'0\';

if(s[i] == 0) break;
i++;

return t;


int main()

char *str = "1 2 3 4 5 6";
int a[10];
int t,i;
t = convert(str, a);
for(i = 0; i < t; i ++)
printf("%d\\n", a[i]);
return 0;
追问

要求分割的字符串为str=“abc yug xcc jjg ghh”, 这个要求以空格为分割 给到一个数组怎么操作

参考技术A 愿你早日过计算机二级:
#include<stdio.h>
int main()

int i=0,j=0; /*i用来控制循环,j用来判断数组前面元数是否为,*/
char k,a[1000];
printf("请输入字符(以‘#’结束):");
while(i<1000) /*输入字符,存储在数组a*/

scanf("%c",&k);
a[i]=k;
if(k=='#')
break;
i++;

i=0;
while(i<1000) /*判断输入的元素是否全为空格*/

if(a[i]!=' ')

j=1;
break;

i++;

i=0;
while(1) /*输出字符*/

if(a[i]=='#')

printf("第%d个字符为#,结束\n",i);
break;

else if(a[i]==' '&&j==1)
printf(",");
else
printf("%c",a[i]);
i++;

printf("\n");
参考技术B #include<stdio.h>
#include<string.h>

int main()
  int i,j=0;
  char a[20];
 char str[]="1 2 3 4 5 6";
 for(i=0;i<strlen(str)-1;i++)
  if(str[i]!=' ')
   a[j++]=str[i]; 
 a[j]='\\0';
 printf("%s",a);
return 0;

试试这个

参考技术C int i=0,j=0;
while(str[i]!='\0')
if(str[i]==' ')
i++; //跳过空格

continue;


else
a[j]=str[i]-'0'; //字符转数字
j++;
i++;


java类中与js中split分割字符串转数组区别

java类中,以“,”分割,将字符串转化为数组

String str = "a,b,c,";
String[] arr = str.split(",");
System.out.println(arr.length);

输出长度为3,arr[0]="a"; arr[1]="b"; arr[2]="c";

js中,以“,”分割,将字符串转化为数组

var str = "a,b,c,";
var arr = str.split(",");
console.log(arr.length);

输出长度为4,arr[0]="a"; arr[1]="b"; arr[2]="c";arr[3]="";

最后为空字符串。





以上是关于c语言 讲一个字符串str以空格为分割,分割后输出到一个一维数组的主要内容,如果未能解决你的问题,请参考以下文章

C 语言 字符串命令 strstr()的用法 实现将原字符串以分割串分割输出

Java 以空格分割字符串

python split函数

C++如何将string按空格分割?

Delphi里面字符分割函数是啥 如何分割以 为分割的字符串

Delphi 分割字符串