C valodā galvenes fails satur standarta virkņu bibliotēku, kurā ir dažas noderīgas un bieži lietotas virkņu manipulācijas funkcijas. Šajā rakstā mēs redzēsim, kā salīdzināt virknes C, izmantojot funkciju strcmp ().
Kas ir strcmp () valodā C?
C strcmp () ir iebūvēta bibliotēkas funkcija, kas tiek izmantota virkņu salīdzināšanai. Šī funkcija izmanto divas virknes (rakstzīmju masīvu) kā argumentus, leksikogrāfiski salīdzina šīs divas virknes , un pēc tam kā rezultātu atgriež 0,1 vai -1. Tas ir noteikts iekšpusē galvenes failu ar tā prototipu šādi:
Strcmp() sintakse valodā C
strcmp( first_str , second_str );>
Strcmp() parametri C
Šī funkcija izmanto divas virknes (rakstzīmju masīvu) kā parametrus:
- first_str: pirmā virkne tiek uzskatīta par rādītāju uz konstantu rakstzīmi (t.i., nemainīgu virkni). second_str: otrā virkne tiek uzskatīta par rādītāju uz nemainīgu rakstzīmi.
Piezīme: Iemesls, kāpēc argumenti tiek uzskatīti par const char *, nevis tikai char *, ir tāpēc, ka funkcija nevar mainīt virkni un padarīt tos piemērojamus nemainīgām virknēm.
Strcmp() atgriešanas vērtība C
Funkcija strcmp () atgriež trīs dažādas vērtības pēc divu virkņu salīdzināšanas, kas ir šādas:
1. Nulle ( 0 )
Vērtība, kas vienāda ar nulli, ja tiek konstatēts, ka abas virknes ir identiskas. Tas ir, visas rakstzīmes abās virknēs ir vienādas.
2. Lielāks par nulli (> 0)
Vērtība, kas ir lielāka par nulli, tiek atgriezta, kad pirmajai neatbilstošajai rakstzīmei laukā first_str ir lielāka ASCII vērtība nekā atbilstošā rakstzīme laukā second_str vai arī mēs varam teikt, ka, ja rakstzīme pirmajā_str. leksikogrāfiski ir aiz second_str rakstzīmes, tad tiek atgriezta nulle.
3. Mazāks par nulli (<0)
Vērtība, kas ir mazāka par nulli, tiek atgriezta, kad pirmajai neatbilstošajai rakstzīmei laukā first_str ir mazāka ASCII vērtība nekā atbilstošā rakstzīme laukā second_str . Mēs varam arī teikt, ka, ja rakstzīme pirmajā_str. leksikogrāfiski ir pirms otrās_str. rakstzīmes, tiek atgriezta nulle.
Lai uzzinātu vairāk par ASCII vērtībām, skatiet šo rakstu - ASCII tabula
Kā izmantot funkciju strcmp () programmā C
Šis piemērs parāda, kā izmantot funkciju strcmp () programmā C:
C
// C Program to Demonstrate the use of strcmp() function> #include> #include> int> main()> {> >// declaring two same string> >char>* first_str =>'Geeks'>;> >char>* second_str =>'Geeks'>;> >// printing the strings> >printf>(>'First String: %s
'>, first_str);> >printf>(>'Second String: %s
'>, second_str);> >// printing the return value of the strcmp()> >printf>(>'Return value of strcmp(): %d'>,> >strcmp>(first_str, second_str));> >return> 0;> }> |
apaļa matemātika java
>
>Izvade
First String: Geeks Second String: Geeks Return value of strcmp(): 0>
Kā strcmp() darbojas programmā C?
C strcmp() funkcija darbojas, salīdzinot divas stīgas leksikogrāfiski . Tas nozīmē, ka tā salīdzina katras rakstzīmes ASCII vērtību, līdz tiek atrasta neatbilstošā vērtība vai tiek atrasta rakstzīme NULL. Funkcijas C strcmp () darbību var aprakstīt šādi:
1. Tas sākas ar abu virkņu pirmo rakstzīmju ASCII vērtību salīdzināšanu.
2. Ja pirmās rakstzīmes abās virknēs ir vienādas, šī funkcija pārbaudīs otro rakstzīmi, ja arī tās ir vienādas, tad pārbaudīs trešo un tā tālāk, līdz tiks atrasta pirmā nesaskaņotā rakstzīme vai tiek atrasta NULL rakstzīme.
3. Ja Ir atrasta NULL rakstzīme , funkcija atgriež nulli jo abas stīgas būs vienādas.
4. Ja tiek atrasta neatbilstoša rakstzīme,
- Ja pirmās virknes rakstzīmes ASCII vērtība ir lielāka nekā otrās virknes rakstzīmes vērtība, tad pozitīvā starpība ( > 0 ) starp to ASCII vērtībām tiek atgriezta.
- Ja pirmās virknes rakstzīmes ASCII vērtība ir mazāka nekā otrās virknes rakstzīmes vērtība, tad negatīvā starpība ( < 0 ) starp to ASCII vērtībām tiek atgriezta.
Visi šie trīs gadījumi ir parādīti turpmākajos piemēros.
Strcmp() piemēri C
Piemērs 1. strcmp() uzvedība identiskām virknēm
Šī programma ilustrē funkcijas strcmp () uzvedību identiskām virknēm.
C
java saišu saraksts
// C program to illustrate> // strcmp() function> #include> #include> int> main()> {> > >char> first_str[] =>'g f g'>;> >char> second_str[] =>'g f g'>;> > >// Using strcmp()> >int> res =>strcmp>(first_str, second_str);> > >if> (res==0)> >printf>(>'Strings are equal'>);> >else> >printf>(>'Strings are unequal'>);> > >printf>(>'
Value returned by strcmp() is: %d'> , res);> >return> 0;> }> |
>
>Izvade
Strings are equal Value returned by strcmp() is: 0>
2. piemērs. strcmp() uzvedība leksikogrāfiski lielākai pirmajai virknei
Tālāk sniegtajā piemērā ir parādīta strcmp() funkcijas darbība leksikogrāfiski lielākai pirmajai virknei.
C
// C program to illustrate> // strcmp() function> #include> #include> int> main()> {> >// z has greater ASCII value than g> >char> first_str[] =>'zfz'>;> >char> second_str[] =>'gfg'>;> > >int> res =>strcmp>(first_str, second_str);> > >if> (res==0)> >printf>(>'Strings are equal'>);> >else> >printf>(>'Strings are unequal'>);> > >printf>(>'
Value of result: %d'> , res);> > >return> 0;> }> |
fibonači secība java
>
>Izvade
Strings are unequal Value of result: 19>
3. piemērs. strcmp() uzvedība leksikogrāfiski mazākajai pirmajai virknei.
Tālāk esošajā piemērā ir parādīta strcmp() funkcijas darbība leksikogrāfiski mazākajai pirmajai virknei.
C
kas ir ziemas guļas režīms
// C program to illustrate> // strcmp() function> #include> #include> int> main()> {> >// b has less ASCII value than g> >char> first_str[] =>'bfb'>;> >char> second_str[] =>'gfg'>;> > >int> res =>strcmp>(first_str, second_str);> > >if> (res==0)> >printf>(>'Strings are equal'>);> >else> >printf>(>'Strings are unequal'>);> > >printf>(>'
Value returned by strcmp() is: %d'> , res);> > > >return> 0;> }> |
>
>Izvade
Strings are unequal Value returned by strcmp() is: -5>
Secinājums
Šajā rakstā mēs apspriedām C standarta bibliotēkas funkcija strcmp() ko izmanto divu stīgu salīdzināšanai leksikogrāfiski. Standarta bibliotēkā ir dažas noderīgas un bieži lietotas funkcijas, kas atvieglo programmēšanu, jo palīdz izvairīties no bieži lietotās funkcijas pārrakstīšanas, kad tas ir nepieciešams.
Bieži uzdotie jautājumi par strcmp() valodā C
1. Kā mēs varam salīdzināt divas virknes C?
Gadi: Mēs varam izmantot funkciju strcmp (), kas ir definēta galvenes failā, lai leksikogrāfiski salīdzinātu divas virknes (rakstzīmju masīvs).
2. Kāds ir funkcijas strcmp() prototips valodā C?
Gadi: Funkcijas strcmp() prototips ir šāds:
int strcmp(const char* lhs , const char* rhs );>
3. Kad funkcija strcmp() atgriež nulli?
Gadi: Funkcija strcmp () atgriež nulli, ja abas virknes ir identiskas.
4. Ko nozīmē funkcijas strcmp() pozitīvā atgriešanas vērtība?
Gadi: Funkcija strcmp() atgriež pozitīvu vērtību, ja pirmā virkne leksikogrāfiski ir lielāka par otro virkni.
5. Ko nozīmē funkcijas strcmp() negatīvā atgriešanas vērtība?
Gadi: Funkcijas strcmp() negatīvā vērtība nozīmē, ka pirmā virkne leksikogrāfiski ir mazāka par otro virkni.
6. Kā funkcija strcmp() salīdzina divas C virknes?
Gadi: Funkcija strcmp () salīdzina katras divu virkņu rakstzīmes ASCII vērtības, līdz tiek atrasta neatbilstošā rakstzīme vai NULL rakstzīme.
7. Vai strcmp() funkciju var izmantot, lai salīdzinātu datu tipus bez virknes C?
Gadi: Nē, funkcija strcmp() nevar salīdzināt datu tipus bez virknes C. Tā var salīdzināt tikai mainīgu vai nemainīgu virknes datu tipu, kas beidzas ar NULL rakstzīmi.
Saistītie raksti:
- Stīgas C
- Bieži lietotās virkņu funkcijas programmā C/C++ ar piemēriem