我想读取用户输入的字符串。我不知道字符串的长度。由于 C 中没有字符串,我声明了一个指针:
char * word;
并使用 scanf
从键盘读取输入:
scanf("%s" , word) ;
但我遇到了段错误。
当长度未知时,如何从 C 中的键盘读取输入?
最佳答案
您没有为 word
分配存储空间 - 它只是一个 dangling pointer .
改变:
char * word;
到:
char word[256];
请注意,此处 256 是一个任意选择 - 此缓冲区的大小需要大于您可能遇到的最大可能字符串。
另请注意 fgets是比 scanf 更好(更安全)的选择用于读取任意长度的字符串,因为它需要一个 size
参数,这反过来有助于防止缓冲区溢出:
fgets(word, sizeof(word), stdin);
关于c - 如何使用C从键盘读取字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7709452/