2014-12-04 37 views
0

早上好,我在C語言輸入時遇到了問題。我想要做的是讀取一個詞,包括所有跟隨它到下一個詞 的空格,例如:一字一句的閱讀,包括以下空格

Hello_______Hi // consider _ to be a whitespace 

Hello_______ 

我還沒有找到一種方法,使scanf做的伎倆,既不strtok。我全都沒有想法,任何一般的提示都會很棒!謝謝

+1

顯示你嘗試過什麼,也通過給出一些輸入和wh來顯示你想要達到什麼你希望成爲輸出嗎? – bitcell 2014-12-04 08:28:57

+1

如果你想能夠閱讀第二個單詞,那麼你必須閱讀完整的一行並自己進行解析。 – 2014-12-04 08:33:25

回答

1

您可以輕鬆地做到這一點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); 
+0

嗯,如果我使用確切的代碼,我會立即崩潰 – 2014-12-04 08:36:31

+0

這是不可能的。你是在Window還是Linux? – 2014-12-04 08:38:15

+0

我在windows上,使用代碼塊編輯代碼並使用gcc編譯器進行編譯,它的工作原理類似於沒有分配scanf的魅力。謝謝! – 2014-12-04 08:40:14