c - fgets 内部是如何工作的?

标签 c gcc string

好吧,这是一个基本问题,但我似乎很困惑。

#include<stdio.h>
int main()
{
char a[100];
printf("Enter a string\n");
scanf("%s",a);
}

基本上以上就是我想要实现的。 如果我输入一个字符串

James Bond

然后我希望将其存储在数组 a 中。 但问题是因为中间存在一个空格,只存储了 James 单词。 那么我该如何解决这个问题。

更新
在下面给出的答复之后,我明白 fgets() 将是一个更好的选择。我想知道 fgets 的内部工作原理,因为它为什么能够用空格存储字符串,而 scanf 不能这样做。

最佳答案

关于c - fgets 内部是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6436378/

相关文章:

c - 为什么 fun(int *p) 不改变指针的值?

c++ - 为什么默认使用 4.8 时 b2 使用 gcc4.6 构建?

c++ - 如何声明 wchar_t 并稍后设置其字符串值?

android - 字符串不会在条件下触发但日志输出表明它应该

c - 输入无效用户时 getpwnam() 使程序崩溃

c - 函数 printf 在 C 中如何工作?

c - 安装AVR开发平台for mac时架构x86_64错误

c++ - AttachConsole 尚未声明

javascript - 在 Javascript 中删除另外 2 个字符之间的字符

c - C中的重新散列函数