早上好,我在C語言輸入時遇到了問題。我想要做的是讀取一個詞,包括所有跟隨它到下一個詞 的空格,例如:一字一句的閱讀,包括以下空格
Hello_______Hi // consider _ to be a whitespace
Hello_______
我還沒有找到一種方法,使scanf
做的伎倆,既不strtok
。我全都沒有想法,任何一般的提示都會很棒!謝謝
早上好,我在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