Forum: Mikrocontroller und Digitale Elektronik IF-Verschachtelung


von Paul (Gast)


Lesenswert?

Hallo,


Ich habe ein Problem mit IF-Verzweigungen.

Angenommen ich habe ein Array mit 5 Stellen und ich möchte die Wissen ob 
die ersten 3 Zeichen im Array 123 sind kann ich mithilfe einer 
IF-Abfrage feststellen oder?

1
char test[5]
2
test[0]='1'
3
test[1]='2'
4
test[2]='3'
5
test[3]='4'
6
test[4]='5'
7
8
if(test[0]=='1') {
9
10
if(test[1]=='2') {
11
12
if(test[2]=='3') {
13
 tu etwas
14
  }
15
 }
16
}
17
18
Weiterer auszuführender Code..

Falls nun jedoch test[1]=='3' wäre, wird die IF-Abfrage abgebrochen und 
der Code weiter ausgeführt oder?

von Peter II (Gast)


Lesenswert?

Paul schrieb:
> IF-Abfrage feststellen oder?

ja
1
if( test[0]=='1' && test[1]=='2' && test[2]=='3' ) {

man kann aber auch eine fertige string Funktion nutzen
1
if( strncmp(test, "123", 3) == 0 ) {

von Dennis (sixeck)


Lesenswert?

woe wäre es mit

if(test[0]=='1' && test[1]=='2' && test[2]=='3'){

tu was

}

....

//too slow

von Juergen (Gast)


Lesenswert?

Ja (modulo fehlende Semikolons).

Aber falls sonst nichts zu tun ist, ist das folgende schöner:
1
if (test[0]=='1' && test[1]=='2' && test[2]=='3') {
2
   // tu etwas
3
}

von Paul (Gast)


Lesenswert?

Dennis S. schrieb:
> woe wäre es mit
>
> if(test[0]=='1' && test[1]=='2' && test[2]=='3'){
>
> tu was
>
> }
>
> ....
>
> //too slow

Danke, diese Methode ist mir bewusst es werden jedoch zwischen den 
einzelnen IF-Abfragen noch Befehle verarbeitet welche ich in diesem 
Beispiel nicht geschrieben habe darum geht diese Methode nicht..


Das mit
1
if( strncmp(test, "123", 3) == 0 ) {

Ist mir neu Danke :)

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.