这是我正在执行的代码:
scanf("%s",expr);
i=0,j=0;
while(expr[i]!='+')
{
l[j++]=expr[i++];
}
j=0;
while(expr[i]!='=')
{
r[j++]=expr[i++];
}
j=0;
while(expr[i]!='\0')
{
s[j++]=expr[i++];
}
printf("%s %d %s %d %s %d",l,strlen(l),r,strlen(r),s,strlen(s));
我不明白为什么这没有显示出正确的输出。
例如,如果
1+1=2
输出应该
1 1 +1 2 =2 2
但我得到的是
1 2symbols 3 +1 2 =2 3symbols 5
最佳答案
在每个字符串的末尾添加\0
。
scanf("%s",expr);
i=0,j=0;
while(expr[i]!='+')
{
l[j++]=expr[i++];
}
l[j]='\0'; //here
j=0;
while(expr[i]!='=')
{
r[j++]=expr[i++];
}
r[j]='\0'; //here
j=0;
while(expr[i]!='\0')
{
s[j++]=expr[i++];
}
s[j]='\0'; //and here
printf("%s %d %s %d %s %d",l,strlen(l),r,strlen(r),s,strlen(s));
关于c - C字符串输入输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22793081/