FAQ:ANSI CPP:удалить из строки все пробелы

Материал из Весельчак У
Версия от 21:26, 8 апреля 2008; RXL (обсуждение | вклад) (Категория FAQ)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Как удалить из строки все пробелы при обработке строки символов в Си++

Можно воспользоваться строками STL.

std::string EraseSpaces( std::string s )
{
    s.erase( remove( s.begin(), s.end(), _T(' ')), s.end());
    return s;
}

А со строками CString так:

txt.Replace(" ","");

Если надо все руками, то так

void main()
{
    char * string = new char[128];
    strcpy(string, "hjsg jsghfhjsg fhjsg hj hj jh   hj gsd j  jhsg hjgsd j");

    char * current = string;
    char * last = string;
 
    for (; *current != '\0' ; ++current)
    {
        if (*current != ' ')
        {
            *last = *current;
            last++;
        }
    }

    delete[] string;
}