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

Материал из Весельчак У

Перейти к: навигация, поиск

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

Можно воспользоваться строками 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, "строка символов с пробелами");
 
char * current = string;
char * last = string;
 
for (; *current != '\0' ; ++current)
{
if (*current != ' ')
{
*last = *current;
last++;
}
}
 
delete[] string;
}