gpt4 book ai didi

c - 字符串中的 do-while 形式问题

转载 作者:太空宇宙 更新时间:2023-11-04 06:39:23 25 4
gpt4 key购买 nike

好吧,我是一名刚接触编程的学生,所以请多关照 ;) 这是在屏幕上打印“n”次字符串的正确代码...

#include <stdio.h>
#include <string.h>

#define MAX 80+1+1 /* 80+\n+\0 */

int main(void)
{
char message[MAX];
int i, n;

/* input phase */
printf("Input message: ");
i = 0;
do {
scanf("%c", &message[i]);
} while (message[i++] != '\n');
message[i] = '\0';

printf("Number of repetitions: ");
scanf("%d", &n);

/* output phase */
for (i=0; i<n; i++) {
printf("%s", message);
}

return 0;
}

为什么在 do-while 形式中他需要检查 message[i++] != '\n' 而不仅仅是 message[i] != '\n'?

最佳答案

在我看来,编写输入循环的正确方法是:

fgets(message, sizeof message, stdin);

换句话说,不要使用逐字符循环,只需使用标准库的函数读取以换行符结尾的字符串即可。

关于c - 字符串中的 do-while 形式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10698033/

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