FAQ:ANSI CPP:удалить из строки все пробелы — различия между версиями
Материал из Весельчак У
RXL (обсуждение | вклад) м (4 версии) |
RXL (обсуждение | вклад) м (Форматирование.) |
||
Строка 1: | Строка 1: | ||
==Как удалить из строки все пробелы при обработке строки символов в Си++== | ==Как удалить из строки все пробелы при обработке строки символов в Си++== | ||
− | + | Можно воспользоваться строками STL: | |
− | < | + | <syntaxhighlight lang="cpp"> |
std::string EraseSpaces( std::string s ) | std::string EraseSpaces( std::string s ) | ||
{ | { | ||
Строка 9: | Строка 9: | ||
return s; | return s; | ||
} | } | ||
− | </ | + | </syntaxhighlight> |
− | + | ||
+ | А со строками CString так: | ||
+ | |||
+ | <syntaxhighlight lang="cpp"> | ||
txt.Replace(" ",""); | txt.Replace(" ",""); | ||
+ | </syntaxhighlight> | ||
− | + | Если надо все руками, то так: | |
− | < | + | <syntaxhighlight lang="cpp"> |
void main() | void main() | ||
{ | { | ||
Строка 36: | Строка 39: | ||
delete[] string; | delete[] string; | ||
} | } | ||
− | </ | + | </syntaxhighlight> |
[[Category:FAQ]] | [[Category:FAQ]] |
Версия 13:32, 20 сентября 2008
Как удалить из строки все пробелы при обработке строки символов в Си++
Можно воспользоваться строками 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; }