Hogy lehet C nyelvben szöveget keresni?
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?
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
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;
}
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;
}
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
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ő).
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!