logo

C programma, lai salīdzinātu divas virknes

Virknes var salīdzināt, izmantojot virknes funkciju vai neizmantojot virknes funkciju. Pirmkārt, mēs apskatīsim, kā mēs varam salīdzināt virknes ar virknes funkcijas palīdzību, t.i., strcmp (), kas ir definēts a string.h galvenes fails.

Virkņu salīdzinājums, izmantojot virknes funkciju

Virknes funkcija, kas ir iepriekš definēta a string.h galvenes fails ir a strcmp () funkciju. Funkcija strcmp() uzskata divas virknes kā parametru, un šī funkcija atgriež vesela skaitļa vērtību, kur var būt vesela skaitļa vērtība nulle , pozitīvs vai negatīvs .

Strcmp () funkcijas sintakse ir norādīta zemāk:

 int strcmp (const char* str1, const char* str2); 

Iepriekš minētajā sintaksē divi parametri tiek nodoti kā virknes, t.i., str1 un str2 , un atgriešanas veids ir starpt nozīmē, ka strcmp() atgriež vesela skaitļa vērtību.

Funkcija strcmp () salīdzina abu virkņu raksturu. Ja abu virkņu pirmā rakstzīme ir vienāda, šis salīdzināšanas process turpināsies, līdz tiek salīdzinātas visas rakstzīmes vai rādītājs norāda uz nulles rakstzīmi “”.

Iespējamās atgriešanas vērtības no funkcijas strcmp ().

Atdeves vērtība Apraksts
0 Kad abas virknes ir vienādas.
<0< td> Ja pirmās virknes rakstzīmes ASCII vērtība ir mazāka par otrās virknes rakstzīmes ASCII vērtību, funkcija atgriezīs negatīvu vērtību.
>0 Ja pirmās virknes rakstzīmes ASCII vērtība ir lielāka par otrās virknes rakstzīmes ASCII vērtību, funkcija atgriezīs pozitīvu vērtību.

Sapratīsim, izmantojot piemēru.

 #include #include int main() { char str1[20]; // declaration of char array char str2[20]; // declaration of char array int value; // declaration of integer variable printf(&apos;Enter the first string : &apos;); scanf(&apos;%s&apos;,str1); printf(&apos;Enter the second string : &apos;); scanf(&apos;%s&apos;,str2); // comparing both the strings using strcmp() function value=strcmp(str1,str2); if(value==0) printf(&apos;strings are same&apos;); else printf(&apos;strings are not same&apos;); return 0; } 

Iepriekš minētās programmas analīze

  • Mēs esam deklarējuši divus char tipa masīvus, t.i., str1 un str2. Lietotāja ievadi mēs uztveram kā virknes.
  • Mēs salīdzinām virknes, izmantojot strcmp () funkcija, t.i., strcmp (str1, str2). Šī funkcija salīdzinās gan virknes str1, gan str2. Ja funkcija atgriež 0 vērtību, tas nozīmē, ka abas virknes ir vienādas, pretējā gadījumā virknes nav vienādas.

Izvade:

C programma, lai salīdzinātu divas virknes
C programma, lai salīdzinātu divas virknes

Virkņu salīdzinājums, neizmantojot strcmp() funkciju

 #include int compare(char[],char[]); int main() { char str1[20]; // declaration of char array char str2[20]; // declaration of char array printf(&apos;Enter the first string : &apos;); scanf(&apos;%s&apos;,str1); printf(&apos;Enter the second string : &apos;); scanf(&apos;%s&apos;,str2); int c= compare(str1,str2); // calling compare() function if(c==0) printf(&apos;strings are same&apos;); else printf(&apos;strings are not same&apos;); return 0; } // Comparing both the strings. int compare(char a[],char b[]) { int flag=0,i=0; // integer variables declaration while(a[i]!=&apos;&apos; &amp;&amp;b[i]!=&apos;&apos;) // while loop { if(a[i]!=b[i]) { flag=1; break; } i++; } if(flag==0) return 0; else return 1; } 

Iepriekš minētās programmas analīze

  • Iepriekš mēs esam deklarējuši divus char tipa masīvus, un mēs izmantojam lietotāja ievadi kā virknes.
  • Mēs esam definējuši funkciju salīdzināt (), kas kā parametru izmantos lietotāja ievades virknes un salīdzinās abas virknes. Ja funkcija atgriež 0, tas nozīmē, ka abas virknes ir vienādas, pretējā gadījumā abas virknes nav vienādas .

Izvade:

C programma, lai salīdzinātu divas virknes

Virkņu salīdzināšana, izmantojot norādes

 #include int stringcompare(char*,char*); int main() { char str1[20]; // declaration of char array char str2[20]; // declaration of char array printf(&apos;Enter the first string : &apos;); scanf(&apos;%s&apos;,str1); printf(&apos;
Enter the second string : &apos;); scanf(&apos;%s&apos;,str2); int compare=stringcompare(str1,str2); // calling stringcompare() function. if(compare==0) printf(&apos;strings are equal&apos;); else printf(&apos;strings are not equal&apos;); return 0; } // Comparing both the strings using pointers int stringcompare(char *a,char *b) { int flag=0; while(*a!=&apos;&apos; &amp;&amp; *b!=&apos;&apos;) // while loop { if(*a!=*b) { flag=1; } a++; b++; } if(flag==0) return 0; else return 1; } 

Iepriekš minētās programmas analīze

  • Mēs esam izveidojuši divus masīvus ar char tipa str1 un str2. Lietotāja ievadi mēs uztveram kā virknes.
  • Mēs esam definējuši funkciju stringcompare(), kas kā parametru izmantos divus char tipa rādītājus. Rādītājam 'a' ir adrese str1 un rādītājam 'b' ir adrese str2. Funkcijā esam izveidojuši kamēr cilpu, kas tiks izpildīta, līdz rādītājs a vai b netiks sasniegts līdz nulles rakstzīmei.

Izvade:

C programma, lai salīdzinātu divas virknes