[C++] Usuwanie spacji z tablicy char
Ostatnio zmodyfikowano 2016-11-26 22:45
Redrum Temat założony przez niniejszego użytkownika |
[C++] Usuwanie spacji z tablicy char » 2016-11-26 13:35:34 Mam do napisania program który usuwa spacje z łańcucha znaków. Nie wolno mi użyć string. Muszę operować jedynie na char*. Program się kompiluje lecz niestety nie działa. Oto mój kod: #include <iostream>
using namespace std;
void removeSpace( char * s ); int main() { char * zdanie = "a bb ccc dddd"; removeSpace( zdanie ); cout << zdanie; return 0; }
void removeSpace( char * s ) { char * tmp; while( *( s++ ) != '\0' ) { if( * s == ' ' ) continue; * tmp++ = * s; } while( * tmp != '\0' ) * s++ = * tmp++; }
|
|
Monika90 |
» 2016-11-26 14:40:28 Nie powinien się kompilować z powodu tej linii char * zdanie = "a bb ccc dddd";
Zmień na char zdanie[] = "a bb ccc dddd";
Funkcja removeSpace jest oczywiście błędna, więc to też musisz poprawić. |
|
j23 |
» 2016-11-26 17:48:56 Nie działa, bo nie przypisałeś żadnego adresu wskaźnikowi tmp. Podpowiem, że do tego wystarczy jedna pętla, jeden warunek i dwa wskaźniki. Operacje wykonujesz na miejscu, bez dodatkowych buforów. |
|
Redrum Temat założony przez niniejszego użytkownika |
» 2016-11-26 22:45:51 Okej, dzięki. Już wszystko mam, działa jak należy. |
|
« 1 » |