2011-04-16 89 views
8

我想檢查一個charstring.at(i))是否是C++中的空白。我怎樣才能輕鬆做到這一點?檢查string.at(i)是否爲空白C++

我得到了這個代碼示例,我想用某種東西改變_____,但不知道是什麼。我已經嘗試過' ',但沒有奏效。

for(int i = 0; i < string.length(); i++) 
{ 
    if(string.at(i) == _________) 
    { 
     //do something 
    } 
} 
+0

'字符串[我] =='「'應該工作,如果你想很簡單的檢查。 – 2011-04-16 22:08:14

+2

沒有理由在這裏使用'at',因爲你知道索引是有效的。 – GManNickG 2011-04-16 22:08:41

+0

@muntoo:空白不是唯一的空白字符。 – 2011-04-16 22:13:23

回答

12
#include <cctype> 

if (isspace(string.at(i))) 
+0

謝謝,它的工作=) – user709712 2011-04-16 22:24:22

2

執迷不悟C程序員遷移到C++將半自動使用:

#include <cctype> 

if (std::isspace(string.at(i))) 
    ... 

這很可能是即使是C++程序員正確的。

+0

我擊敗了你11秒。 – dan04 2011-04-16 22:08:23

+0

@ dan04:我注意到了。做得好! – 2011-04-16 22:13:55

+0

謝謝你sir =) – user709712 2011-04-16 22:25:09

5

而不是== [東西],你想:if (isspace(string.at(i))(或者你可能更喜歡使用std::isspace)。

編輯:我應該補充一點,這取決於你在做什麼與空格字符(或你與其他一切,取決於)你可能想要使用一個算法。只是舉例來說,如果你想創建字符串刪除了所有的空格字符的副本,你可以使用:

std::remove_copy_if(s.begin(), s.end(), std::back_inserter(new_string), isspace); 
+0

非常感謝你=) – user709712 2011-04-16 22:24:49