C语言读取字符串问题

怎样直接读取两个连在一起的字符串 比如说 123456+123456怎样一次性将123456和分别存入两个字符数组之中,同时也能将+读取到一个字符中。。。

第1个回答  2014-04-21
如果你的输入部分不含有空格,可以使用

scanf("%s+%s",str1,str2);
然后单独保存‘+’

如果你的字符串含有kongge
那么先用fgets()读入整行,然后用strtok分解为两个字符串,再单独保存‘+’追问

我知道你没试过第一个。。。
第二个如果是减法怎么确定分割基准。。。

追答

那就不要依赖库函数自己写一个新的函数

还有一个选项是借助LEX使用正则表达式来解决这个问题

第2个回答  2014-04-21
#include<stdio.h>
int main()
{
char a[20];
char b[20];
char c,ch;
int i=0;
while((ch=getchar())!='+')
{
a[i]=ch;
i++;
}
c=ch;
i=0;
while((ch=getchar())!='\n')
{
b[i]=ch;
i++;
}
printf("%s\n",a);
printf("%c\n",c);
printf("%s\n",b);

return 0;

}追问

没其他办法么?

追答

还有就是楼上说的
#include
#include
int main()
{
char str[512];
char *a;
char *b;
char c;

fgets(str,512,stdin);
a=strtok(str, "+");
b=strtok(NULL,"+");
c='+';
printf("%s\n",a);
printf("%s\n",b);
return 0;
}

本回答被提问者采纳
相似回答