Datamaskin
  | Hjem | Hardware | Nettverk | Programmering | Software | Feilsøking | Systems | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringsspråk
  • Delphi Programming
  • Java Programming
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl Programming
  • Python Programming
  • Ruby Programming
  • Visual Basics Programming
  •  
    Datamaskin >> Programmering >> C /C + + Programming >> Content
    C for strcmp Function
    C + + allerede inneholder en streng sammenligning funksjon - " strcmp ( ) " - som utfører oppgaven med å sammenligne to strenger for likestilling . Den strcmp ( )-funksjonen returnerer forskjellige verdier avhengig av forholdet av strengene til hverandre. Gjennomføringen av en strcmp ( )-funksjonen skiller mellom datamaskinarkitekturer ( eller forblir under lisens fra forskjellige leverandører ) , men en programmerer kan reimplement den grunnleggende funksjonaliteten av koden for å se hvordan det fungerer . For å forstå funksjonen , må imidlertid programmerer forstå hvordan strenger, matriser og pekere jobbe i C og C + + . Strenger, Arrays og pekere

    I C , strenger er samlinger ( eller arrays) av tegn . For eksempel , etter

    røye string [ 10 ];
    p Som en rekke av 10 tegn , "streng" representerer en setning i C. Men arrays er faktisk pekere, eller variabler som refererer til minne adresse . Matrisen "streng " representerer faktisk en peker til det første elementet i minnet blokken , og programmereren kan referere til de andre elementene i matrisen gjennom denne pekeren .
    Definere " strcmp ( ) "

    Den grunnleggende definisjonen av en strcmp funksjonen vil se omtrent slik ut : en

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

    Per definisjon er et string sammenligning funksjonen vil bruke to tegn arrays ( str1 , str2 ) . Siden matriser representerer pekere vil definisjonen ta to tegn pekere. Med disse pekerne , kan programmereren sjekke hvert element i en matrise mot en annen array. Men først bør programmereren erklære to tegn variabler , som vil holde de verdiene som finnes i de to strenger : en

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

    røye a, b;

    }
    Traversering Strings

    for å sammenligne strengene , må funksjonen sammenligne hvert tegn i hver streng til hverandre . For å gjøre dette , bruker programmerer de to pekere ( str1 , str2 ) for å gå ned hver matrise : en

    while ( * str1 = ' \\ 0 ' && * str1 == * str2 ! ) {
    < p> str1 + + ; //flytter pekeren av strengen str1 til neste tegn

    str2 + +; //gjør det samme , str2

    }

    mens loop gjør søker : først , hvis str1 treff en avslutning karakter ( "\\ 0 " som er lagt til på slutten av strenger av C-språk ) , da løkken avsluttes, fordi at strengen er gjort. Sekund, dersom verdien av str1 ( * str1 ) ikke lik verdien av str2 ( * str2 ) , deretter løkken stopper , fordi strengene er ulik.
    Returnere resultatet

    strCmp returnerer en av tre resultater : 0 ( hvis strengene er like) , 1 ( hvis den første er større enn den andre ) og -1 ( hvis den første er mindre enn den andre ) : en < p> røye a = * str1 ;

    røye b = * str2 ;

    if ( a == b )

    {return 0 ;}

    annet

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

    Siden løkker stoppe når det er ulikhet eller når begge er ferdig , vil resultatet ende opp som to like tegn ( den '\\ 0 ' symbol) eller den skjeve tegn funnet .
    komplett code

    komplette koden , da, ser slik ut (og implementeringer vil variere , avhengig av teknikk eller systembetingelser ) : en

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

    røye a, b;

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

    str1 + + ; //flytter pekeren på strengen str1 til neste tegn

    str2 + +; //gjør samme, str2

    }

    røye a = * str1 ;

    røye b = * str2 ;

    if ( a == b )

    {return 0 ;}

    annet

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

    }
    < p > inn to strenger , for eksempel

    røye streng1 [ 40 ] = "Dette er streng" ;

    røye string2 [ 40 ] = "Dette er streng" ;

    int resultat = strcmp ( streng1 , string2 ) ;

    vil returnere 0;

    früher :

     Weiter:
      Relatert Artike
    ·Hvordan å generere tilfeldige Negative og positive hel…
    ·Hvordan skrive HTML Extensions i C 
    ·Fordeler og ulemper ved Objective C 
    ·Hvordan bruke Atoi Function 
    ·Hvordan skrive en Vim Script 
    ·Hvordan konvertere en streng til en figur i C + + 
    ·Hvordan lage en dynamisk String i C + + 
    ·Hvordan lage en C # Class Library DLL hjelp av Visual S…
    ·Hvordan å mestre C Pekere 
    ·Computer Engineering Design Prosjekter 
      Anbefalte artikler
    ·Hvordan åpne en enkel IMAP -tilkobling Med PHP 
    ·Hvordan lage et Visual Logic Flytskjema 
    ·Hvordan lage Movie Review programvare 
    ·Character Array vs String 
    ·Hvordan bygge en Meny i Android 
    ·Hvordan lage din egen spillmotor 
    ·Hvordan få Koordinater for Linux markøren 
    ·Hvordan slå sammen to Date kolonner i Oracle 
    ·Opplæring for MySQL REGUTTR 
    ·Python Lambda Opplæring 
    Copyright ©  Datamaskin  http://www.datamaskin.biz/