Kezdőoldal » Számítástechnika » Programozás » Hogy lehet C nyelvben szöveget...

Hogy lehet C nyelvben szöveget keresni?

Figyelt kérdés

Az a feladat, hogy dowhile ciklussal addig kérdezgessünk valamit (mondjuk egy jelszót) amíg be nem gépel egy előre meghatározott szót. Tehát olyasmit, amit beleírunk a kódba, hogy mondjuk csak arra a szóra lépjen ki a ciklusból, hogy például "abc123".

Hogyan lehetne ezt kivitelezni? Írnátok egy rövid konkrét forráskódot?



2014. szept. 24. 19:47
 1/7 A kérdező kommentje:

Tehát:

...

char jelszo[20];

do {printf("Kerem a jelszot!");

gets (jelszo);}

while (jelszo != 'abc123')

...


De így nem működik, mert mindíg újra kérdezi tökmindegy, hogy mit írok be, vagy pedig kilép a ciklusból rögtön...

Segítsetek légyszi

2014. szept. 24. 19:52
 2/7 anonim ***** válasza:

Nagyon alap dolog a C-ben, hogy karaktertömbök tartalmát nem lehet így összehasonlítani. Ha ez egy feladat, akkor biztosan elmondták.

Btw nem keresni kell, hanem összehasonlítani. Erre van az strcmp() függvény.



#include <stdio.h>

#include <string.h>

int main(){

char str1[30],str2[30];

printf("Enter first string: ");

gets(str1);

printf("Enter second string: ");

gets(str2);

if(strcmp(str1,str2)==0)

printf("Both strings are equal");

else

printf("Strings are unequal");

return 0;

}

2014. szept. 24. 20:31
Hasznos számodra ez a válasz?
 3/7 anonim ***** válasza:

1. gets-t ne használj van fgets(tömb, tömb mérete, stdin)

2. string összehasonlításhoz van strcmp függvény


#include <stdio.h>

#include <string.h>


int main() {

char jelszo[20];

char jo[] = "abc123\n";

do {

printf("Kerem a jelszot:");

fgets(jelszo, 20, stdin);

} while(strcmp(jelszo, jo)!=0);

return 0;

}

2014. szept. 24. 20:46
Hasznos számodra ez a válasz?
 4/7 A kérdező kommentje:
#2 ez jólesz köszi. Még annyit, hogy ha esetleg több jelszó is van, akkor hogy lehet feltételbe tenni hogy akkor lépjen tovább ha mondjuk 6 lehetőség közül kéne választania?
2014. szept. 24. 21:41
 5/7 A kérdező kommentje:

szal


int main() {

char jelszo[20];

char jo1[] = "abc123\n";

char jo2[] = "abc124\n";

do {

printf("Kerem a jelszot:");

fgets(jelszo, 20, stdin);

} while(strcmp(jelszo, jo1)!=0 || strcmp(jelszo, jo2)!=0 );

return 0;

}



ez így nemjó nekem. nemtom hogylehetne :S

2014. szept. 24. 21:46
 6/7 anonim ***** válasza:
&&
2014. szept. 24. 21:59
Hasznos számodra ez a válasz?
 7/7 anonim ***** válasza:

Logika:

Mikor kéne újra megkérdeznie?

Ha egyik jelszóval sem egyezik, tehát nem egyenlő ezzel ÉS nem egyenlő azzal ÉS...


Ha VAGYot használsz, akkor az mindig teljesülni fog, mert egyszerre nem lehet mindegyikkel egyenlő (ha van legalább két különböző).

2014. szept. 25. 10:20
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!