Проверьте, является ли string.at (i) пробелом C ++ - PullRequest
10 голосов
/ 17 апреля 2011

Я хочу проверить, является ли char (string.at(i)) пробелами в C ++.Как я могу сделать это легко?

Я получил этот пример кода, и я думал изменить _____ на что-то, но не знаю что.Я пробовал с ' ', но это не сработало.

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

Ответы [ 3 ]

14 голосов
/ 17 апреля 2011
#include <cctype>

if (isspace(string.at(i)))
6 голосов
/ 17 апреля 2011

Вместо == [что-то] вы хотите: if (isspace(string.at(i)) (или вы можете предпочесть использовать std::isspace).

Редактировать: я должен добавить, что в зависимости от того, что вы делаете с пробелами (или от того, что вы делаете со всем остальным, в зависимости от), вы можете использовать алгоритм. Например, если вы хотите создать копию вашей строки со всеми удаленными пробельными символами, вы можете использовать:

std::remove_copy_if(s.begin(), s.end(), std::back_inserter(new_string), isspace);
3 голосов
/ 17 апреля 2011

Нераскаявшиеся программисты C, мигрирующие на C ++, будут полуавтоматически использовать:

#include <cctype>

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

Вполне вероятно, что это будет правильным даже для программистов на C ++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...