[C] Arrayadresse+1

Azi

Erfahrenes Mitglied
Hi,

Ich habe einen String in einem Char-Array, und den ersten Buchstaben möchte ich entfernen.
Code:
char s[]="hallo, welt!";
s++; //Jetzt sollte der Sting "allo, welt!" enthalten
Leider meldet mir der Kompiler "error: incompqtible types in assignment" für die Zeile mit dem s++. Was kann ich dagegen tun?

Azi
 
Das kann so auch gar nicht gehen.
Ein Array wird häufig mit einem Zeiger gleichgesetzt, aber ein wesentlicher Unterschied wird dabei unterschlagen: Ein Array zeigt immer auf genau eine Adresse, die nicht verändert werden kann! Es ist sozusagen ein konstanter Zeiger.

Du könntest statt des Arrays ein Zeiger initialisieren
C++:
char *s="hallo, welt!";
s++;

Oder du bleibst beim Array und veränderst die Buchstaben in einer Schleife (string.h includen nicht vergessen)
C++:
char str[] = {"Hallo Welt!"};
    int i;

    for(i=0; i<strlen(str); i++){
        str[i] = str[i+1];
    }
 
Zurück