| Hjem | Hardware | Netværk | Programmering | software | Fejlfinding | systemer | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringssprog
  • Delphi programmering
  • Java programmering
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl programmering
  • Python Programming
  • Ruby Programming
  • Visual Basics Programmering
  •  
    Computer Viden >> Programmering >> C /C + + Programming >> Content
    C strcmp Funktion
    C + + indeholder allerede en streng sammenligning funktion - " strcmp () " - som udfører opgaven med at sammenligne to strenge for ligestilling . Den strcmp ( )-funktionen giver forskellige værdier afhængigt af forholdet mellem strengene til hinanden. Gennemførelsen af ​​et strcmp () funktion er forskellig mellem edb arkitekturer ( eller forbliver under licens fra forskellige leverandører ), men en programmør kan reimplement den grundlæggende funktionalitet af koden for at se, hvordan det virker. At forstå funktionen skal dog programmøren forstå, hvordan strenge, arrays og pointers arbejde i C og C + + . Strygere , arrays og Pointers

    C , strygere er samlinger (eller arrays ) af tegn . For eksempel [10]

    char string ,
    p Som en vifte af 10 tegn , "streng " repræsenterer en sætning i C. Men arrays er faktisk pegepinde, eller variabler , der henviser til memory -adresse . Array "streng" repræsenterer faktisk en pointer til det første element i hukommelsen blok, og programmøren kan referere til andre emner i matrixen gennem denne pointer.
    Definition " strcmp ()" < br >

    grundlæggende definition af en strcmp funktion vil ligne dette : Hej

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

    Pr. definition en string sammenligning funktion vil udnytte to tegndatatabeller ( str1 , str2 ) . Da arrays repræsenterer pegepinde , vil definitionen tage to tegn pointere. Med disse pejlemærker , kan programmøren kontrollere hver enkelt element i en matrix imod en anden array. Først bør dog programmøren erklære to tegn variabler , som vil holde værdierne i de to strenge : Hej

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

    char a, b ,

    }
    overkørsel af Strings

    for at kunne sammenligne strengene skal funktionen sammenligne de enkelte tegn i hver streng til hinanden . For at gøre dette , programmøren bruger to pegepinde ( str1 , str2 ) for at flytte ned hvert array : Hej

    while ( * str1 = '\\ 0' && * str1 == * str2 !) {
    < p> str1 + + //flytter markøren af strengen str1 til næste tegn

    str2 + + //gør det samme , str2

    }

    mens løkken gør søger : først, hvis str1 hits en afslutning tegn ( "\\ 0 ", som er vedlagt i slutningen af ​​strengene af C-sprog ), så løkken afsluttes, fordi denne streng er færdig. For det andet, hvis værdien af ​​str1 ( * str1 ) ikke gør lige værdien af ​​str2 ( * str2 ), så løkken stopper , fordi strengene er ulige .
    Returnering af Result
    < br >

    strCmp returnerer et af tre resultater : 0 ( hvis strengene er ens ) , 1 (hvis den første er større end den anden ) og -1 ( hvis den første er mindre end den anden ) :
    < p> char a = * str1 ,

    char b = * str2 ,

    if ( a == b),

    {return 0 ;}

    ellers

    {return ( ( a < b ) -1 : ? 1 );}

    Siden sløjfer stopper , når der er ulighed eller når begge er færdig , vil resultatet ender som to lige tegn ( den '\\ 0 ' symbol) eller ulige tegn fundet.
    Complete Code

    komplet regelsæt , så ligner denne (og implementeringer vil variere , afhængigt af teknik eller systemets forhold) : Hej

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

    char a, b ​​,

    while ( ! * str1 = '\\ 0' && * str1 == * str2 ) {

    str1 + + //flytter markøren af strengen str1 til næste tegn

    str2 + + //gør samme , str2

    }

    char a = * str1 ,

    char b = * str2 ,

    if ( a == b )

    {return 0 ;}

    ellers

    {return ( ( a < b ) -1 : ? 1 );}

    }
    < p > indtastning to strenge , såsom

    char streng1 [40] = "Dette er strengen "

    char streng2 [40] = "Dette er strengen "

    int result = strcmp ( streng1 , streng2 ),

    vil returnere 0 ,

    Forrige :

    næste :
      Relaterede artikler
    ·Hvordan til at beregne størrelsen af elementer i Buffe…
    ·Sådan tilsidesætte et accessor metode i Objective -C 
    ·Hvordan laver man en stjerne Space Mønster i C + + 
    ·Sådan Fix C + + Fejl R6002 
    ·Hvordan laver Graph Kvadranter i C + + 
    ·Hvordan skal tjekkes for en Understreng Switch 
    ·Hvordan man laver en brugerdefineret Splitter Vindue i …
    ·Hvordan man laver en GNU fil til C + + 
    ·Hvordan til at tage pegepinde til heltal i C + + 
    ·Sådan bruges Microsoft Visual Studio C Compiler for Pi…
      Anbefalede Artikler
    ·Sådan Check Hvis en post findes i MySQL 
    ·Hvordan til at beregne størrelsen af elementer i Buffe…
    ·Sådan fjernes Accenter i en VB6 String 
    ·Voice chat Projekter i Visual Studio 
    ·Hvordan man bruger PHP -kode i ASP.NET 
    ·Hvordan man laver en nøgle Gen i Vb 
    ·Sådan Set Up en Binary Søg Tree i Python 
    ·Hvordan laver tændstikmænd på ægte Basic 
    ·Sådan Læs SQL Fra Visual C 
    ·Sådan fjernes en understregning i Python 
    Copyright © Computer Viden http://www.computerdk.com