Normaal gesproken kan een programmeur de lengte van een zin ( of string) in een C + + -programma door roepingen van de snaar "lengte ( ) " methode halen . Echter , strings zoals geïmplementeerd in C + + waren niet altijd beschikbaar , en programmeurs hebben toegang tot kant-en- methoden, zoals lengte ( ) niet hebben . Het tellen van de lengte van een string zonder gebruik te maken van dit ingebouwde methode houdt begrip touwtje , c - stijl karakter arrays , en hoe te itereren over hen. C + + Strings en C Strings In C + + , de ingebouwde data type " string" vertegenwoordigt zinnen , zinnen of woorden . Echter , de string datatype vertegenwoordigt eigenlijk wat programmeurs noemen een " c - stijl " string . In de oorspronkelijke taal C , programmeurs opgeslagen zinnen als verzamelingen ( of arrays ) karakters . Dus terwijl in C + + , een variabele declaratie zin lijkt : string str = " Hallo " ; in C , dezelfde verklaring lijkt : char str [ 50 ] = " Hallo " ; Waar " str " staat voor een reeks van 50 tekens . Bovendien De " c_str ( ) " methode sinds C - stijl strings zijn gewoon arrays , ze eindigen allemaal met een Null beëindigen karakter ( " \\ 0 " ) , dat het einde van de string betekent . < br > het interessante strings in C + + is dat ze een klasse , en als een klasse bevat methoden om het werk op de snaar te doen. Een van deze methoden ( " c_str ( ) " ) retourneert een C - stijl string die de C + + koord vertegenwoordigt . Dit betekent dat de return waarde zal eindigen als een karakter array met de karakters van de string , inclusief het nul beëindiging karakter . Kopiëren van de C String om daadwerkelijk iets te maken heeft met de C - stijl string opgehaald uit c_str ( ) , de programmeur nodig heeft om het in een karakter array . Dit de ' strcpy " -methode , waarbij een karakter array naar de andere kopieert vereist : # include # include # include < ; iostream > using namespace std ; string str = " A String " ; char str2 [ 50 ] ; strcpy ( str2 , str . c_str ( ) ) op Nu zal de C - stijl string representatie van " str " kopiëren naar de karakter array " str2 " ( inclusief nul - karakter ) . het tellen van de tekens Nu dat de programmeur heeft een scala kopie van de string , inclusief het nul-karakter dat de programmeur bij de string eindigt , wordt het een kwestie van simpelweg tellen van tekens zal informeren totdat het programma raakt de null karakter : int i = 0 ; terwijl ( ! str2 [ i ] = " \\ 0 " ) { i + + } cout << i + 1 ; de lus "terwijl" controleert elk teken van het begin ( de 0 karakterpositie ) tot het bereiken van de nul-karakter . Vervolgens geeft het programma i 1 ( omdat de index begint bij 0 , en de nul-karakter positie wordt niet meegeteld ) wat resulteert in een return waarde van 8 .
|