Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
 C , reťazce sú zbierky ( alebo pole ) znakov . Napríklad , 
 
 char string [ 10 ] ; 
 
 poľa 10 znakov , " string " predstavuje trest v C. Avšak , polia sú vlastne odkazy , alebo premenné odkazuje na adresu pamäti . Pole " string " v skutočnosti predstavuje ukazovateľ na prvú položku v bloku pamäti , a programátor môže odkazovať na iné položky v poli pomocou tohto ukazovateľa . 
 Definícia " strcmp ( ) " 
 
 
 základné definície funkcie strcmp bude vyzerať podobne ako tento : 
 
 int strcmp ( const char * str1 , const char * str2 ) ; 
 
 Podľa definície , funkcia nákupný reťazcov bude využívať dve znakové pole ( str1 , str2 ) . Vzhľadom k tomu , že polia predstavujú ukazovatele , bude definícia trvať dva ukazovatele znak . S týmito ukazovateľmi , môže programátor kontrolovať každú položku v poli proti iné pole . Najprv však programátor by mal vyhlásiť dve znakovej premennej , ktorá bude držať hodnoty nájdené vo dvoch reťazcov : 
 
 int strcmp ( const char * str1 , const char * str2 ) { 
 
 char , b ; 
 
 } 
 přejet Struny 
 
 Aby porovnať reťazca , musí byť funkcia porovnať každý znak v každej string navzájom . Ak to chcete vykonať , programátor používa dva ukazovatele ( str1 , str2 ) pre pohyb nadol každého poľa : 
 
 while ( * str1 = ' \\ 0 ' && * str1 == * str2 ! ) { 
 
 str1 + + ; //presunie ukazovateľ na reťazec str1 na ďalší znak 
 
 str2 + + ; //to isté , str2 
 
 } 
 
 kým slučka robí hľadanie : za prvé, ak je str1 hity zakončovací znak ( " \\ 0 " , ktorý je pripojený na konci reťazca podľa jazyka C ) , potom sa slučka ukončí , pretože reťazec je hotovo . Po druhé , v prípade , že hodnota str1 ( * str1 ) sa nerovná hodnote str2 ( * str2 ) , potom sa slučka zastaví , pretože reťazce sú nerovné . 
 Vráti výsledok 
 
 
 strcmp vracia jednu z troch výsledkov : 0 (ak sú reťazce zhodné ) , 1 ( v prípade , že prvý je väčší ako druhý ) a -1 (ak je prvá menšia než druhý ) : 
 
 char = * str1 ; 
 
 char b = * str2 ; 
 
 if ( a == b ) 
 
 { return 0 ; } 
 
 iný 
 
 { return ( ( < b ) -1 : 1 ) ; } 
 
 Vzhľadom k tomu , slučky zastaví , keď je nerovnosť alebo keď sú obaja hotoví , bude výsledok skončí ako dva rovnaké znaky ( symbol ' \\ 0 ' ) alebo nerovné znaky nájdených . 
 kompletný kód 
 
 kompletné kód , potom vyzerá podobne ako tento ( a implementácia sa bude líšiť v závislosti na technike alebo systémových podmienok ) : 
 
 int strcmp ( const char * str1 , const char * str2 ) { 
 
 char , b ; 
 
 while ( * str1 = ' \\ 0 ' && * str1 == * str2 ) { 
 
 str1 + + ; ! //presunie ukazovateľ na reťazec str1 na ďalší znak 
 
 str2 + + ; //áno To isté , str2 
 
 } 
 
 char = * str1 ; 
 
 char b = * str2 ; 
 
 if ( a == b ) 
 
 { return 0 ; } 
 
 iného 
 
 { return ( ( < b ) -1 : 1 ) ; } 
 
 } 
 
 zadávanie dva reťazce , ako je napríklad 
 
 char string1 [ 40 ] = " Toto je reťazec " ; 
 
 char string2 [ 40 ] = " Toto je reťazec " ; 
 
 int výsledok = strcmp ( řetězec1 , reťazec2 ) ; 
 
 vráti 0 ;