befehl zerlegen

peter85

Grünschnabel
Hallo,

ich bin ein totaler Anfänger in der Programmiersprache c und bräuchte deshalb ein wenig Hilfe:

Ich benutze die neueste Version von code blocks mit mingw32-g++

Ich bekomme zb folgenden string: sende\0status\0eingabe
ich möchte mit strcmp dann die einzelne Teilstücke vergleichen. Dazu muss ich die einzelnen Teilstücke in einen separaten String ablegen .
Das möchte ich mit folgendem Programm mache:

Code:
#include <stdio.h>
#include <stdlib.h>

int main()
{
      char befehl[10];
      befehl[0] = 't';
      befehl[1] = 'e';
      befehl[2] = 's';
      befehl[3] = 't';
      befehl[4] = '\0';
      befehl[5] = 'e';
      befehl[6] = 'r';
      befehl[7] = '\0';
      befehl[8] = 't';
      befehl[9] = '\0';
    char string[5];
    int m = 0;
    int n = 0;
    int x;
    for(x=0;x<3;x++)
    {
    while(befehl[m]);
    {
        string[n] = befehl[m];
        m++;
        n++;
    }
    m++;
    n = 0;
    printf( "%s\n", string );
    }
}

Das Programm lässt sich ausführen, bekomme aber keine Ausgabe.

Ich habe es zunächst ohne die Verlegung probiert, indem ich mir einfach die Startpositionen der einzelnen Befehle im String gemerkt habe:

Code:
strcmp (str[5], test)

Dieser Code sollte dann den Teststring mit ( in dem Beispiel ) "er" vergleichen, hat aber nicht funktioniert weil der Compiler gemeckert hat und ich dann nicht weiter wusste.

Weis jemand warum mein erster Code nicht funktioniert oder kennt jemand einen eleganteren Weg ?

Mfg Peter
 
Noch ein Tipp:

Das
C++:
      char befehl[10];
      befehl[0] = 't';
      befehl[1] = 'e';
      befehl[2] = 's';
      befehl[3] = 't';
      befehl[4] = '\0';
      befehl[5] = 'e';
      befehl[6] = 'r';
      befehl[7] = '\0';
      befehl[8] = 't';
      befehl[9] = '\0';
geht auch einfacher:
C++:
char befehl[10];
strcpy(befehl, "test");
strcpy(&befehl[5], "er");
strcpy(&befehl[8], "t");

Gruß
 
Zurück