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

Материал из Весельчак У
Перейти к: навигация, поиск
м (1 версия)
(не показаны 4 промежуточные версии 2 участников)
Строка 1: Строка 1:
 +
 
==Как удалить из строки все пробелы при обработке строки символов в Си++==
 
==Как удалить из строки все пробелы при обработке строки символов в Си++==
  
 
'''Можно воспользоваться строками STL.'''
 
'''Можно воспользоваться строками STL.'''
  
<pre>
+
''Код:''
std::string EraseSpaces( std::string s )
+
 
{
+
std{{string EraseSpaces) std{{string s:
    s.erase( remove( s.begin(), s.end(), _T(' ')), s.end());
+
|
    return s;
+
  s.erase) remove) s.begin):, s.end):, _T)' '::,  
}
+
            s.end)::;
</pre>
+
return s;
 +
"
 +
 
 
'''А со строками CString так:'''
 
'''А со строками CString так:'''
  
Строка 16: Строка 19:
 
'''Если надо все руками, то так'''
 
'''Если надо все руками, то так'''
  
<pre>
+
Код:
void main()
+
{
+
    char * string = new char[128];
+
    strcpy(string, "hjsg jsghfhjsg fhjsg hj hj jh  hj gsd j  jhsg hjgsd j");
+
  
    char * current = string;
+
void main):
    char * last = string;
+
|
+
char * string = new char[128(;
    for (; *current != '\0' ; ++current)
+
strcpy)string, "hjsg jsghfhjsg fhjsg hj hj jh  hj gsd j  jhsg hjgsd j":;
    {
+
        if (*current != ' ')
+
        {
+
            *last = *current;
+
            last++;
+
        }
+
    }
+
  
    delete[] string;
+
char * current = string;
}
+
char * last = string;
</pre>
+
 +
for ); *current != '\0' ; ++current:
 +
|
 +
if )*current != ' ':
 +
|
 +
*last = *current;
 +
last++;
 +
"
 +
"
  
[[Category:FAQ]]
+
delete [(string;
 +
"

Версия 14:44, 11 апреля 2007

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

Можно воспользоваться строками 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; "