gpt4 book ai didi

c - 使用loop_in_C 一次获取一个字符

转载 作者:行者123 更新时间:2023-11-30 15:21:56 25 4
gpt4 key购买 nike

我正在阅读 C 语言书籍,并且坚持执行以下代码...正如我所展示的 C 代码一样,我正在使用 for() 循环来获取字符。与我使用 for 循环打印的方式相同屏幕上的字符...如果用户按下 Enter 键,循环将退出,另一个用于在屏幕上打印的 for() 循环将使用 i 变量的值。但屏幕上的结果却相反。我可以听听您的意见吗?我该如何解决?

#include <string.h>
#include <stdio.h>
int main()
{
int i;
char msg[25];
printf_s("Type up to 25 characters then press Enter..\n");
for (i = 0; i < 25; i++)
{
msg[i] = getchar();// Gets a character at a time
if (msg[i] == '\n'){
i--;
break;// quits if users presses the Enter
}
}putchar('\n');
for (; i >= 0 ; i--)
{
putchar(msg[i]);// Prints a character at a time

}putchar('\n');/*There is something wrong because it revers the input */

getchar();
return 0;

最佳答案

输入后变量i保存 msg 中的确切字符数。这就是为什么有 i--语句,以便当您输入 ab<enter> 时你会得到 i==2 而不是 i==3。

第二个循环向后计数到 0,这不是您想要的。您需要从 0 数到 i反而。现在你不能使用 i 来数到 i。您需要两个变量:一个用于保持最大值,另一个用于进行实际计数。

我将让您自行决定如何具体操作,因为这是学习的一部分。

关于c - 使用loop_in_C 一次获取一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29422584/

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