Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C字符串输入输出_C_Scanf_C Strings - Fatal编程技术网

C字符串输入输出

C字符串输入输出,c,scanf,c-strings,C,Scanf,C Strings,这是我正在执行的代码: 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

这是我正在执行的代码:

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
输出应该是
11+12=22

但是我得到的是
12符号3+12=23符号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中的所有字符串。是的,明白了。谢谢,有时候小事情会把整个代码搞乱;