首页 > 解决方案 > 在 C 中使用 scanf 处理字符串

问题描述

大家好,我对这段代码有疑问:

#define MAX_LIMIT 5
#include <stdio.h>
#include <stdlib.h>
int main()
{
    char S[MAX_LIMIT];
    scanf("%s", S);
    printf("%s\n", S);
}

如您所见,“MAX_LIMIT”值为 5,因此我不希望刺痛“S”的字符数超过 5 个......当我输入超过此限制的输入单词时,就会出现问题。

例如,如果我写“1234567890”,我希望 printf 打印“1234”,但它打印“1234567890”,我不知道为什么......我也尝试在输入之后添加fflush(stdin);getchar();,但它没有工作

我已经尝试过fgets(S, MAX_LIMIT, stdin);并且它有效,但我仍然不明白为什么如果我使用scanf它不会...

标签: arrayscstringinputscanf

解决方案



推荐阅读