字符串输入在C:如何字符*s;s=malloc(..)有效吗



当我在Hackerrank中练习字符串时,他们向我展示了一种在C中获得字符串输入的新方法,这是我以前从未见过的。这是代码:

char *s;
s = malloc(1024 * sizeof(char));
scanf("%[^n]", s);
s = realloc(s, strlen(s) + 1); 

你能解释一下这些东西是怎么工作的吗?在很多程序中,我总是通过以下方式输入字符串:

char *s[MAX_LEN];
fflush(stdin);
gets(s);

谢谢!

scanf("%[^n]", s);gets()读取更差。

它不提供导致缓冲区溢出的宽度限制,当输入为"n"时无法设置s,并且不消耗后面的"n"


使用fgets()将用户输入的读取到字符串中。

要删除潜在的尾随'n',请参阅此处。

fgets(buf, n, stdin)最多可读取中的n-1个字符。消耗多余输入所需的附加代码。

相关内容

  • 没有找到相关文章

最新更新