Hvernig á að bera saman tvo strengi í forritunarmálinu C

Höfundur: William Ramirez
Sköpunardag: 18 September 2021
Uppfærsludagsetning: 1 Júlí 2024
Anonim
Hvernig á að bera saman tvo strengi í forritunarmálinu C - Samfélag
Hvernig á að bera saman tvo strengi í forritunarmálinu C - Samfélag

Efni.

Það er frekar algengt í C kóða að bera saman strengi til að komast að því hvaða strengur inniheldur fleiri stafi. Þetta er gagnlegt til að flokka gögn. Sérstök aðgerð er nauðsynleg til að bera saman strengi - ekki nota != eða ==.

Skref

  1. 1 C forritunarmálið inniheldur tvær aðgerðir sem þú getur notað til að bera saman strenglengdir. Báðar þessar aðgerðir eru innifaldar á bókasafninu string.h>.
    • strcmp () - þessi aðgerð ber saman tvo strengi og skilar mismuninum í fjölda stafi.
    • strncmp () - þessi aðgerð er sú sama og strcmp () nema það fyrsta n stafir. Það er talið öruggara vegna þess að það forðast yfirrennslisbilun.
  2. 2 Byrjaðu forritið með nauðsynlegum bókasöfnum. Þú þarft bókasöfn stdio.h> og string.h>sem og önnur bókasöfn sem krafist er fyrir tiltekna forritið þitt.

    #include stdio.h> #include string.h>

  3. 3 Sláðu inn fall int. Það skilar heiltölu vegna samanburðar á lengd tveggja strengja.

    #include stdio.h> #include string.h> int main () {}

  4. 4 Þekkja strengina tvo sem þú vilt bera saman. Í dæminu okkar skulum við bera saman tvo strengi af gerðinni bleikja... Skilgreindu einnig skilagildi sem heiltölu.

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"; bleikja * str2 = "appelsína"; int ret; }

  5. 5 Sláðu inn samanburðaraðgerð. Í dæminu okkar munum við nota fallið strncmp ()... Í henni þarftu að stilla fjölda mældra stafi.

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"; bleikja * str2 = "appelsína"; int ret; ret = strncmp (str1, str2, 8); / * Ber saman tvo strengi sem eru allt að 8 stafir að lengd * /}

  6. 6 Sláðu inn skilyrt yfirlýsingu Ef... Annar. Það er nauðsynlegt til að sýna hvaða lína er lengri. Virkni strncmp () mun skila númerinu 0ef lengd strengjanna er sú sama, jákvæð tala ef str1 er lengri og neikvæð tala ef str2 er lengri.

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"; bleikja * str2 = "appelsína"; int ret; ret = strncmp (str1, str2, 8); ef (ret> 0) {printf ("str1 er lengri"); } annað ef (ret 0) {printf ("str2 er lengri"); } else {printf ("Línulengdir eru jafnar"); } skila (0); }

Viðvaranir

  • Mundu að ef lengdir strengjanna eru jafnar verður gildinu 0 skilað. Þetta getur verið ruglingslegt vegna þess að 0 er líka FALSE.