Frage zu Pointern

OP #2484241
Lesenswert?

Hallo zusammen,

ich habe eine Frage zu Pointer (stehe mit denen echt auf Kriegsfuss ;-( 
). Ist zwar ein Fujitsu 16fx / 96340 Projekt mit Softune, denke aber, 
dass es sich eher um eine grundsätzliche Frage handelt.

Also - in meinem Hauptprogramm ist folgendes drin:
1
char webIfParsed[64];
2
...
3
*webIfParsed = 0;
4
parse_command(webIfGotData, webIfParsed);
5
if (strcmp(webIfParsed, "getstatus") == 0)  // status requested
6
{
7
  ....
8
}

Klappt soweit wunderbar, der Vergleich funktioniert und die If-Bedingung 
wird auch wie gewünscht ausgeführt.

Nun zum Problem - ich möchte gerne innerhalb von parse_command bereits 
einen Vergleich auf den Wert machen:
1
void parse_command(const char *input, char* command)
2
{
3
  // Achtung, hier nicht webIfParsed, sondern command
4
  /* copy first token to command */
5
  while (( *input != 0) && (*input != ' ') && (*input != 10))
6
  {
7
    *command = *input;
8
    command++;
9
    input++;
10
  }
11
  *command = 0;
12
  
13
  // HIER DER VERGLEICH
14
  if (strcmp(command, "getstatus") == 0)
15
  {
16
    ....
17
  }
18
....
19
}

Dieser Vergleich klappt nicht ?! Ich stehe echt auf dem Schlauch, kann 
mir jemand helfen?

Danke,
Sebastian
OP #2484260
Lesenswert?

Hallo ihr zwei,

genial - 100000 Dank ! (ohne Übertreibung ;-). Ich sag ja, ich steh mit 
Pointern auf Kriegsfuss.

Merke mir jetzt mit einer weiteren Variable den Anfang und vergleiche 
dagegen, hier nochmal komplett, wenn jemand mal eine entsprechende 
Lösung sucht ;-)
1
void parse_command(const char *input, char* command)
2
{
3
  char* ptr_val;
4

5
  // Achtung, hier nicht webIfParsed, sondern command
6
  /* copy first token to command */
7
  ptr_val = command;
8
  while (( *input != 0) && (*input != ' ') && (*input != 10))
9
  {
10
    *command = *input;
11
    command++;
12
    input++;
13
  }
14
  *command = 0;
15
  
16
  // HIER DER VERGLEICH
17
  if (strcmp(ptr_val, "getstatus") == 0)
18
  {
19
    ....
20
  }
21
....
22
}

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren