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()的用法 实现将原字符串以分割串分割输出