打印后打印的随机字符'result'
Random characters printed after printing 'result'
我在 printf("%s",result);
中的实际输出后得到随机字符。
为什么要打印这些字符?我该如何删除它们?
#include<stdio.h>
char *replacechar(char[]);
int main()
{
char str[25];
char *result;
int i=0;
while( (str[i++]=getchar()) != '\n' && i < 25);
result= replacechar(str);
printf("%s",result);
return 0;
}
char *replacechar(char str[])
{
return str;
}
预期输出:
aaayt
aaayt
实际输出:
aaayt
aaayt
↑@
首先是条件的操作数
(str[i++]=getchar()) != '\n' && i < 25
应该交换。
i < 25 && (str[i++]=getchar()) != '\n'
存储在字符数组 str 中的输入应该以零结尾。否则数组将不包含字符串。
这是一个演示程序,展示了如何重写您的代码
#include <stdio.h>
char *replacechar( char str[] )
{
return str;
}
int main(void)
{
enum { N = 25 };
char str[N];
char *result;
size_t i = 0;
while( i < N - 1 && ( str[i] = getchar() ) != '\n' ) i++;
str[i] = '[=12=]';
result = replacechar( str );
puts( result );
return 0;
}
它的输出可能看起来像
Hello Siddharth Awana
Hello Siddharth Awana
我在 printf("%s",result);
中的实际输出后得到随机字符。
为什么要打印这些字符?我该如何删除它们?
#include<stdio.h>
char *replacechar(char[]);
int main()
{
char str[25];
char *result;
int i=0;
while( (str[i++]=getchar()) != '\n' && i < 25);
result= replacechar(str);
printf("%s",result);
return 0;
}
char *replacechar(char str[])
{
return str;
}
预期输出:
aaayt
aaayt
实际输出:
aaayt
aaayt
↑@
首先是条件的操作数
(str[i++]=getchar()) != '\n' && i < 25
应该交换。
i < 25 && (str[i++]=getchar()) != '\n'
存储在字符数组 str 中的输入应该以零结尾。否则数组将不包含字符串。
这是一个演示程序,展示了如何重写您的代码
#include <stdio.h>
char *replacechar( char str[] )
{
return str;
}
int main(void)
{
enum { N = 25 };
char str[N];
char *result;
size_t i = 0;
while( i < N - 1 && ( str[i] = getchar() ) != '\n' ) i++;
str[i] = '[=12=]';
result = replacechar( str );
puts( result );
return 0;
}
它的输出可能看起来像
Hello Siddharth Awana
Hello Siddharth Awana