一字一句的阅读,包括以下空格
早上好,我在C语言输入时遇到了问题。我想要做的是读取一个词,包括所有跟随它到下一个词 的空格,例如:一字一句的阅读,包括以下空格
Hello_______Hi // consider _ to be a whitespace
Hello_______
我还没有找到一种方法,使scanf
做的伎俩,既不strtok
。我全都没有想法,任何一般的提示都会很棒!谢谢
您可以轻松地做到这一点scanf
char *a;
printf ("\n Enter a string: ");
scanf ("%m[^\n]%*c", &a);
printf ("\n string: '%s'\n\n", a);
输出:
$ ./bin/scanfws
Enter a string: Hello Hi
string: 'Hello Hi'
要没有scanf
分配:
char a[30];
printf ("\n Enter a string: ");
scanf ("%[^\n]%*c", a);
printf ("\n string: '%s'\n\n", a);
嗯,如果我使用确切的代码,我会立即崩溃 – 2014-12-04 08:36:31
这是不可能的。你是在Window还是Linux? – 2014-12-04 08:38:15
我在windows上,使用代码块编辑代码并使用gcc编译器进行编译,它的工作原理类似于没有分配scanf的魅力。谢谢! – 2014-12-04 08:40:14
显示你尝试过什么,也通过给出一些输入和wh来显示你想要达到什么你希望成为输出吗? – bitcell 2014-12-04 08:28:57
如果你想能够阅读第二个单词,那么你必须阅读完整的一行并自己进行解析。 – 2014-12-04 08:33:25