Forum: Compiler & IDEs Strings aufsplitten und nutzen


von R. B. (britzi)


Lesenswert?

Hallo zusammen,

leider bin ich mal wieder auf ein Problem gestoßen, bei dem ich nicht 
weiterkomme.

Ich möchte einen String an einen AVR senden und diesen anschließend 
aufsplitten. Der erste Teil soll dabei als Referenz für eine Variable 
dienen und der zweite Teil soll dieser Variable dann als neuer Wert 
zugewiesen werden. Der Datentyp soll unsigned integer sein.

Das ist das erste mal, dass ich als Anfänger mit Zeigern in Kontakt 
komme.
Vermutlich darf ich den Zeiger in der if-Anweisung nicht nutzen, aber 
ich habe keine Idee, wie ich es sonst lösen kann.

Anbei mein Versuch, der aber leider nicht ganz hinhaut:
1
#include <string.h>      
2
#include <stdio.h>      
3
#include <stdlib.h>      
4
#include <stdint.h>      
5
6
int main( void )
7
{
8
    u_int8_t leuchtdiode;
9
    char string[]   = "led-50";
10
    char delimiter1[] = "-";
11
    char *pointer;
12
13
pointer = strtok (string, delimiter1);
14
if (pointer=="led")
15
    leuchtdiode = atoi (pointer = strtok (NULL, delimiter1));
16
printf("LED: %u\n", leuchtdiode);
17
18
  return EXIT_SUCCESS;
19
}


Vielen Dank für die Tipps :-)

von Mik (Gast)


Lesenswert?

R. B. schrieb:
> if (pointer=="led")

diese Bedingung ist immer falsch, du vergleichst die Pointer nicht den 
Inhalt auf den sie zeigen.
Probier strcmp()

von R. B. (britzi)


Lesenswert?

Mik schrieb:
> R. B. schrieb:
>> if (pointer=="led")
>
> diese Bedingung ist immer falsch, du vergleichst die Pointer nicht den
> Inhalt auf den sie zeigen.
> Probier strcmp()


Vielen Dank, mit strcmp() funktioniert es prima :-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.