2013-03-18 68 views
3

我正在嘗試在用戶輸入的字符串中查找空格。我想使用std::string中的find()來返回該空間的位置。string.find(「」)未找到空格

如果輸入是「Seattle,WA USA」,並且我想find(" ", 0)返回8,我該怎麼做? 8日是後面的空格 「」

string inputString = " "; 
cout << "Enter String to modify" << endl; 
cin >> inputString; 
int spac = inputString.find(" " , 0); 

find()是回頭率0。 我不知道爲什麼。

+2

注意,'0'意味着_First character_,並不表示一個無法找到:'的std :: string: :npos'表示未找到。 – hmjd 2013-03-18 11:33:58

回答

8

您沒有讀取空格(cin >> inputString停止空格...)。

改爲使用std::getline(std::cin, inputString)

+0

謝謝,這個「getline」是做什麼的? – SndLt 2013-03-18 11:36:27

+0

@SndLt,請參閱參考頁面:http://en.cppreference.com/w/cpp/string/basic_string/getline – hmjd 2013-03-18 11:37:31

+0

沒關係,它正在工作。謝謝。 – SndLt 2013-03-18 11:39:55

0

這是因爲cin這之後第一空間截斷的話,並將其存儲到inputString

string inputString; 

getline(cin, inputString); 

int spac = inputString.find(" " , 0); 

cout << spac << endl;