Ako porovnať v programe dva znaky
Moderátor: Moderátori
Ako porovnať v programe dva znaky
Ahojte,experimentujem s prenosom na 433MHz,prenos funguje.Potrebujem porovnať dva znaky či sú zhodné,alebo nie.Na Rx strane mám príkaz :Serial.println(msg);Ak vyšlem char *msg="A",tak napíše: A.Ale príkaz: if(msg="A"){digitalWrite(3,LOW);} je ignorovaný,nenašla sa zhoda.Prosím o radu ako napísať príkaz if,aby to korektne porovnalo.
Ďkujem predom za radu Boro
Ďkujem predom za radu Boro
0
-
- Nový člen
- Príspevky: 56
- Dátum registrácie: 09 Máj 2012, 08:00
- Bydlisko: Banska Bystrica
- Vek: 44
- Kontaktovať používateľa:
Re: Ako porovnať v programe dva znaky
ako napisal cofi ==
if(msg == "A"){digitalWrite(3,LOW);}
if(msg == "A"){digitalWrite(3,LOW);}
0
Hej ty - robota...!!! Mňa sa neboj, ja sa ťa ani nedotknem!
MPD linux -> Customworks DAC1-> HYPA 10 -> B&W 801 80 series
Pro-Ject RPM 6.1 -> Transrotor MM ucello -> Actidamp MK3
MPD linux -> Customworks DAC1-> HYPA 10 -> B&W 801 80 series
Pro-Ject RPM 6.1 -> Transrotor MM ucello -> Actidamp MK3
Re: Ako porovnať v programe dva znaky
Musíš použiť strcmp funkciu.
Reťazec sa takto porovnávať nedá:.
Buď porovnáš jeden znak:,
alebo si pozri strcmp
https://www.nongnu.org/avr-libc/user-ma ... f379fc33ba.
Reťazec sa takto porovnávať nedá:
Kód: Vybrať všetko
if(msg == "A") { }
Buď porovnáš jeden znak:
Kód: Vybrať všetko
if(*msg == 'A') { }
alebo si pozri strcmp
https://www.nongnu.org/avr-libc/user-ma ... f379fc33ba.
0
-
- Ultimate člen
- Príspevky: 2328
- Dátum registrácie: 25 Jún 2013, 21:06
- Bydlisko: Krajné
- Vek: 57
- Kontaktovať používateľa:
Re: Ako porovnať v programe dva znaky
Tak len pre poriadok. Porovnanie pomocou == je možné použiť len pre arduino a to pre objekty typu String. Pre klasické C reťazce typu char [], teda polia znakov sa to použiť nedá. Vtedy treba použiť reťazcové funkcie ako písal budvar. V konečnom dôsledku aj tak je použitá funkcia strcmp len je tam využitý C++ fičúra- preťaženie operátorov.
Kedže v otázke je typ premennej/objektu msg zamlčaný tak autor zrejme ani netuší čo tu píšem.
Kedže v otázke je typ premennej/objektu msg zamlčaný tak autor zrejme ani netuší čo tu píšem.
0
Ukáž múdremu chybu a on sa ti poďakuje. Ukáž chybu hlupákovi a on sa urazí.
Re: Ako porovnať v programe dva znaky
Použil som funkciu strcmp nasledovne: int a=int strcmp(const char* "A",const char* msg)_ATTR_PURE_; a po verify vypíše: expected primary-expression before "int"
Neviem čo ešte vyžaduje,opäť prosím o pomoc.Ďakujem
Neviem čo ešte vyžaduje,opäť prosím o pomoc.Ďakujem
0
Re: Ako porovnať v programe dva znaky
Je problém poslať kód? Ten popis sa mi zdá nezrozumiteľný.
Ak, tak nejako takto:
Treba si niečo naštudovať o C/C++, aspoň základy.
Ak, tak nejako takto:
Kód: Vybrať všetko
int a= strcmp("A", msg);
0
Re: Ako porovnať v programe dva znaky
Budvar10,ďakujem pekne, už to funguje.Použil som príkaz int a=strcmp("A",msg); ako ste mi poradili.Heureka!!!!!!!!
0
-
- Podobné témy
- Odpovedí
- Zobrazení
- Posledný príspevok
-
- 17 Odpovedí
- 2354 Zobrazení
-
Posledný príspevok od používateľa kapor
-
- 0 Odpovedí
- 1123 Zobrazení
-
Posledný príspevok od používateľa lato
-
- 13 Odpovedí
- 2030 Zobrazení
-
Posledný príspevok od používateľa hal_sk
-
- 6 Odpovedí
- 1232 Zobrazení
-
Posledný príspevok od používateľa milan209
-
- 1 Odpovedí
- 890 Zobrazení
-
Posledný príspevok od používateľa enigma