FAQ:ANSI CPP:удалить из строки все пробелы — различия между версиями
Материал из Весельчак У
RXL (обсуждение | вклад) (Смена категории.) |
RXL (обсуждение | вклад) |
||
Строка 41: | Строка 41: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | [[Category:FAQ:ANSI CPP]] | + | [[Category:FAQ:ANSI CPP]] [[Category:FAQ:STL]] |
Версия 21:52, 4 октября 2009
Как удалить из строки все пробелы при обработке строки символов в Си++?
Можно воспользоваться строками 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; }