|  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> C /C + + -programmering >> Content

    C för Strcmp funktion

    C + + redan innehåller en funktion strängjämförelse - " strcmp ( ) " - som utför uppgiften att jämföra två strängar för jämställdhet . Den strcmp ( ) returnerar olika värden beroende på förhållandet mellan strängarna till varandra . Genomförandet av en strcmp ( ) funktionen skiljer mellan datorarkitekturer ( eller förblir under licens från olika leverantörer ) , men en programmerare kan reimplement de grundläggande funktionerna i koden för att se hur det fungerar . För att förstå funktionen måste emellertid programmeraren förstå hur strängar, arrayer och pekare arbetar i C och C + +. Strängar , arrayer och pekare

    C , strängar är samlingar ( eller matriser ) av tecken . Till exempel ,

    char string [ 10 ] ;

    Som en samling av 10 tecken , " sträng " representerar en mening i C. Men matriser är faktiskt pekare , eller variabler som minnesadress . Matrisen " Strängen " representerar egentligen en pekare till det första objektet i minnet blocket , och programmeraren kan referera till andra objekt i arrayen genom denna pekare .
    Definiera " strcmp ( ) "

    Den grundläggande definitionen av en strcmp funktion kommer se ut ungefär så här :

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

    Per definition , en strängjämförelse funktion kommer att använda två tecken arrayer ( str1 , str2 ) . Eftersom matriser representerar pekare , kommer definitionen att ta två tecken pekare . Med dessa tips , kan programmeraren kontrollera varje objekt i en array mot en annan grupp . Först bör dock programmeraren deklarera två tecken variabler , vilket kommer att hålla de värden som finns i de två strängar :

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

    röding a , b;

    }
    Gå igenom Strings

    för att jämföra strängar , måste funktionen jämföra varje tecken i varje sträng till varandra. För att göra detta använder programmeraren de två pekare ( str1 , str2 ) för att flytta ner varje array :

    medan ( * str1 = ' \\ 0 ' && * str1 == * str2 ! ) {
    < p > str1 + + , //flyttar pekaren av strängen str1 till nästa tecken

    str2 + + , //gör samma sak , str2

    }

    medan loopen gör söka : första , om str1 träffar en avslutande karaktär ( " \\ 0 " , som läggs till i slutet av strängar av C-språket ) , då slingan avslutas , eftersom den strängen görs . Andra, om värdet av str1 ( * str1 ) inte är lika med värdet av str2 ( * str2 ) , då slingan stannar , eftersom strängarna är olika . Addera Returnera resultat

    Strcmp returnerar ett av tre resultat: 0 ( om strängarna är lika ) , 1 ( om den första är större än den andra ) och -1 ( om den första är mindre än den andra ) :
    < p > char a = * str1 ,

    char b = * str2 ;

    if ( a == b ) katalog

    {return 0 ;}

    annars

    {return ( ( a

    eftersom slingorna sluta när det finns ojämlikhet eller när båda är färdiga , kommer resultatet att sluta som två lika tecken ( det ' \\ 0 ' symbol ) eller de ojämlika tecken hittades .
    hela koden

    hela koden , sedan , ser ut ungefär så här ( och implementeringar kommer att variera , beroende på teknik eller villkor systemet ) :

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

    röding a , b;

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

    str1 + + , //flyttar pekaren av strängen str1 till nästa tecken

    str2 + + , //gör samma , str2

    }

    char a = * str1 ,

    char b = * str2 ;

    if ( a == b ) katalog

    {return 0 ;}

    annat

    {return ( ( a

    }
    < p > in två strängar , såsom

    char sträng1 [ 40 ] = "Detta är sträng";

    char sträng2 [ 40 ] = "Detta är sträng";

    int resultatet = strcmp ( sträng1 , sträng2 ) ;

    återkommer 0;

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur Log Samtal till D3D
    ·Hur man skapar Dynamisk belysning i GTKRadiant
    ·Hur man använder Kopiera Constructors i C + +
    ·Hur man bygger Logic för programmering
    ·Hur tydlig skärm innan en ny Loop i en CPP
    ·Hur man skriver en testplan
    ·Hur få produkten av en Array i C + +
    ·C för Strcmp funktion
    ·Hur man driver ett Cpp Arkiv
    ·First - Class funktioner i Python
    Utvalda artiklarna
    ·Hur man gör en öppning Video med Game Maker 7
    ·Hur göra en Hög Låg spelet i Python
    ·Hur Ladda ner ARES
    ·Vad är ColdFusion Builder
    ·Hur man dödar en gänga med FG i Python
    ·Hur du använder Hibernate med Eclipse
    ·Hur man gör en Twitter Stream API i Perl
    ·Implicit Markörer vs Explicit Markörer
    ·Hur Understruken text med HTML-koder
    ·Inaktivera Begränsningar i MySQL
    Copyright © Dator Kunskap http://www.dator.xyz