我的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();
}
答案 0 :(得分:1)
只有您知道什么长度足以满足您的需求。
如果有效输入的集合或范围有限,则可以使用最大有效输入的长度+ 1。
如果最大有效输入没有限制,则您需要确定程序不支持输入的长度不超过X并将其设置为限制,或者实现循环读取到动态增长的缓冲区中(例如,根据需要使用realloc
)。
并且始终记住在读取时限制最大允许输入长度,以免过多的输入导致缓冲区溢出。 (使用fgets
通常是最简单的方法。)