c语言 分离带空格的英文字符和数字

比如,输入John Henson 1232343 11.3
把John Henson存入数组a[20]
把1232343存入数组b[20]
把11.3存入字符变量f
关键是人名中间有空格不知道怎么处理,用%s的话遇到空格就停止了,用gets的话又是整一行都读进去了,难道非要一个一个的分离么,有木有简单的方法,谢谢
还有就是那个,把11.3存入浮点型变量中,这个怎么弄啊,用gets的话都是以字符形式寸的

第1个回答  2012-03-11
如果输入的字符串中包括空格,只能用gets将一行读入某个中间字符数组,然后用循环从该字符数组第一个元素(下标0)开始一个个判断后切下来放到目标去,如果有数字转换等,一边切就可以一边转换了

当然,如果一行行的数据很规整,也可以读入多个单独的数据(尤其是字符串)再合并起来
第2个回答  2012-03-11
写个工具函数呗,键盘输入,读取到数组中。
void readLine(char* p,int n)
{
int c;
int i = 0;
c = getchar();
printf("*****************\n");
while(c!=EOF)
{
if(i>=n || c=='\n')
break;
p[i] = c;
i++;
printf("c = %c\n",c);
c = getchar();
}
if(i>=n-1)
p[n-1] = '\0';
else
p[i] = '\0';
}本回答被提问者和网友采纳
第3个回答  2012-03-11
你不会把他作为字符录入啊,最后在添加个'\0'作为结尾不就成字符串了

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网