我想从用户输入一个最大长度为30字符的字符串,并检查它是否包含一个行的结尾。
到目前为止,我试图写的是:

int main(void) {
int i;
char* command = (char*)calloc(31, sizeof(char));
while (0 < 1) {
    scanf("%s", command);
    for (i = 0; i <= strlen(command); ++i) {
        if (command[i] == '\n')
            printf("here");
    }
    if (strcmp(command, "quit") == 0)
        break;
}

其目的是检查用户作为输入所发出的命令是否“合法”——即长度当我运行这段代码时,无论输入的长度如何,它都不会打印“here”。

最佳答案

这是因为scanf()不包括换行符,它将其视为空白,并使用空白分隔它转换的值。只需使用strlen()的返回值。

07-24 09:46
查看更多