Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Usuwanie spacji z tablicy char

Ostatnio zmodyfikowano 2016-11-26 22:45
Autor Wiadomość
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:
C/C++
#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++;
   
}
P-154150
Monika90
» 2016-11-26 14:40:28
Nie powinien się kompilować z powodu tej linii
C/C++
char * zdanie = "a bb ccc dddd";

Zmień na
C/C++
char zdanie[] = "a bb ccc dddd";


Funkcja removeSpace jest oczywiście błędna, więc to też musisz poprawić.
P-154151
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.
P-154155
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.
P-154162
« 1 »
  Strona 1 z 1