如何填充数组的括号之间,我可以使用strlen吗?

时间:2018-12-22 12:47:35

标签: c

我的scanf需要字符串长度,我如何确定在[]之间放置什么数字,可以使用A [strlen]。

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

int main()
{
    char A[];
    printf("enter a string");
    scanf("%s", A);
    printf("%s", A);
    getch();

}

1 个答案:

答案 0 :(得分:1)

只有您知道什么长度足以满足您的需求。

如果有效输入的集合或范围有限,则可以使用最大有效输入的长度+ 1。

如果最大有效输入没有限制,则您需要确定程序不支持输入的长度不超过X并将其设置为限制,或者实现循环读取到动态增长的缓冲区中(例如,根据需要使用realloc)。

并且始终记住在读取时限制最大允许输入长度,以免过多的输入导致缓冲区溢出。 (使用fgets通常是最简单的方法。)