gpt4 book ai didi

c - 打印后随机打印字符 'result'

转载 作者:行者123 更新时间:2023-12-05 01:27:23 25 4
gpt4 key购买 nike

我在 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] = '\0';

result = replacechar( str );

puts( result );

return 0;
}

它的输出可能看起来像

Hello Siddharth Awana
Hello Siddharth Awana

关于c - 打印后随机打印字符 'result',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57393309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com