Strcmp (jazyk C): Rozdiel medzi revíziami
Skočit na navigaci
Skočit na vyhledávání
(Vytvorená stránka „{{Funkcie jazyka c}} __NOTOC__ ==Funkcia strcmp== <properties> knižnica=string.h popis=... </properties>“) |
|||
| Riadok 1: | Riadok 1: | ||
{{Funkcie jazyka c}} | {{Funkcie jazyka c}} | ||
__NOTOC__ | __NOTOC__ | ||
| − | ==Funkcia | + | ==Funkcia system== |
<properties> | <properties> | ||
| − | knižnica=string.h | + | knižnica=string.h |
| − | popis= | + | popis=Porovná dva textové reťazce. |
</properties> | </properties> | ||
| + | |||
| + | Úplný funkčný prototyp: | ||
| + | <source lang="c"> | ||
| + | int strcmp ( const char * str1, const char * str2 ); | ||
| + | </source> | ||
| + | ==Podrobný popis funkcie== | ||
| + | Táto funkcia začne porovnávať od prvého znaku oboch reťazcov. Ak sú si navzájom rovnaké, pokračuje s nasledujúcimi pármi, až kým sa znaky nebudú líšiť alebo kým sa nedosiahne koncový nulový znak. Táto funkcia vykoná binárne porovnanie znakov. | ||
| + | |||
| + | ==Parametre== | ||
| + | ;str1: Prvý textový reťazec, ktorý budeme porovnávať s druhým textovým reťazcom. | ||
| + | ;str2: Druhý textový reťazec. | ||
| + | |||
| + | ==Návratová hodnota== | ||
| + | Vráti integrálnu hodnotu označujúcu vzťah medzi reťazcami: | ||
| + | {| class="wikitable" | ||
| + | ! Vrátená hodnota !! Indikuje | ||
| + | |- | ||
| + | | <0 || Prvý znak, ktorý sa nezhoduje, má v ''ptr1'' nižšiu hodnotu ako v ''ptr2''. | ||
| + | |- | ||
| + | | 0 || Obsah oboch reťazcov je rovnaký. | ||
| + | |- | ||
| + | | >0 || Prvý znak, ktorý sa nezhoduje, má v ''ptr1'' väčšiu hodnotu ako v ''ptr2''. | ||
| + | |} | ||
| + | |||
| + | |||
| + | ==Príklad== | ||
| + | <source lang="c" line> | ||
| + | #include <stdio.h> | ||
| + | #include <string.h> | ||
| + | |||
| + | int main () | ||
| + | { | ||
| + | char kluc[] = "jablko"; | ||
| + | char buffer[80]; | ||
| + | do { | ||
| + | printf ("Uhadnes moje oblubene jedlo? "); | ||
| + | fflush (stdout); //vymaže výstup | ||
| + | scanf ("%79s",buffer); //načíta textový reťazec s maximálnou dĺžkou 79 znakov | ||
| + | } while (strcmp (kluc,buffer) != 0); //Porovná reťazec kluc a reťazec buffer | ||
| + | puts ("Spravne!"); | ||
| + | return 0; | ||
| + | } | ||
| + | </source> | ||
| + | Výstup: | ||
| + | Uhadnes moje oblubene ovocie? hruska | ||
| + | Uhadnes moje oblubene ovocie? pomaranc | ||
| + | Uhadnes moje oblubene ovocie? jablko | ||
| + | Spravne! | ||
Verzia zo dňa a času 15:15, 22. apríl 2020
| <ctype.h> | <limits.h> | <stdio.h> | <stdlib.h> | <math.h> | <string.h> | <time.h> |
|---|---|---|---|---|---|---|
|
isalnum |
printf |
system |
Funkcia system
knižnica | string.h |
popis | Porovná dva textové reťazce. |
Úplný funkčný prototyp:
int strcmp ( const char * str1, const char * str2 );
Podrobný popis funkcie
Táto funkcia začne porovnávať od prvého znaku oboch reťazcov. Ak sú si navzájom rovnaké, pokračuje s nasledujúcimi pármi, až kým sa znaky nebudú líšiť alebo kým sa nedosiahne koncový nulový znak. Táto funkcia vykoná binárne porovnanie znakov.
Parametre
- str1
- Prvý textový reťazec, ktorý budeme porovnávať s druhým textovým reťazcom.
- str2
- Druhý textový reťazec.
Návratová hodnota
Vráti integrálnu hodnotu označujúcu vzťah medzi reťazcami:
| Vrátená hodnota | Indikuje |
|---|---|
| <0 | Prvý znak, ktorý sa nezhoduje, má v ptr1 nižšiu hodnotu ako v ptr2. |
| 0 | Obsah oboch reťazcov je rovnaký. |
| >0 | Prvý znak, ktorý sa nezhoduje, má v ptr1 väčšiu hodnotu ako v ptr2. |
Príklad
1 #include <stdio.h>
2 #include <string.h>
3
4 int main ()
5 {
6 char kluc[] = "jablko";
7 char buffer[80];
8 do {
9 printf ("Uhadnes moje oblubene jedlo? ");
10 fflush (stdout); //vymaže výstup
11 scanf ("%79s",buffer); //načíta textový reťazec s maximálnou dĺžkou 79 znakov
12 } while (strcmp (kluc,buffer) != 0); //Porovná reťazec kluc a reťazec buffer
13 puts ("Spravne!");
14 return 0;
15 }
Výstup:
Uhadnes moje oblubene ovocie? hruska Uhadnes moje oblubene ovocie? pomaranc Uhadnes moje oblubene ovocie? jablko Spravne!