string functions c
I den här självstudien kommer vi att diskutera några av de populära strängfunktionerna i C ++ som getline-strängning, stränglängd, strängsökning, splitsträng etc:
C ++ har en strängklass som används för en sekvens av tecken som också kallas strängar. Denna klass är std :: sträng . Den här klassen lagrar strängarna som en sekvens av teckenbyte och tillhandahåller funktioner som gör att vi kan manipulera, komma åt och läsa strängarna samt komma åt och manipulera enstaka tecken.
bästa gratis videokonverterare för Windows 7
=> Besök här för en komplett C ++ - kurs från experter.
Vad du kommer att lära dig:
C ++ strängfunktioner
C ++ - sträng är en sekvens av tecken. När vi definierar strängar i C ++ använder vi en sträng
nyckelord som bara är std :: string class. Denna strängklass stöder olika funktioner från läsning av en sträng, manipulering, åtkomst till en sträng etc. som utför olika operationer på strängobjekt. Några ofta använda funktioner listas nedan -
Låt bli | Strängfunktioner | Beskrivning |
---|---|---|
1 | getline | Gör linjen från ström till sträng |
två | substr | Få en delsträng av en viss sträng |
4 | Längd, strlen | Få längden på strängen |
5 | Hitta | Hitta innehåll i sträng |
6 | Strtok, substrat med avgränsare | Dela sträng i tokens |
getline C ++
Funktionsprototyp: istream & getline (istream & is, string & str)
Parameter (er): is => istream-objekt från vilket karaktärerna extraheras.
str => Strängobjekt som används för att lagra extraherat tecken.
Returvärde: Returvärdet är detsamma som istream är. Internt anger exekveringen av getline vissa interna flaggor enligt följande.
flagga | Felbeskrivning |
---|---|
eofbit | Slutet på karaktärskällan nått |
failbit | Input kan inte tolkas som en giltig textrepresentation av objektet av denna typ |
badbit | Alla andra fel utom ovanstående två |
Beskrivning: getline är en vanlig biblioteksfunktion. Denna funktion används för att läsa en rad eller en sträng från en standardingångsström som istream. Raderna eller strängarna läses tills ' n' som anses som avgränsningstecken påträffas.
Som en annan version av getline kan en tredje parameter ”char delim” anges. Detta är ett avgränsningstecken som anges uttryckligen. I den här funktionen läses en rad text eller sträng tills det angivna avgränsningsteckenet påträffas.
Nedan följer ett enkelt exempel för att visa användningen av getline.
Exempel:
#include #include using namespace std; int main() { string mystr; cout<<'Enter the input string:'< Produktion:
Ange inmatningssträngen:
C ++ handledning
Du skrev in: C ++ tutorials

I exemplet ovan läser vi en inmatningssträng med hjälp av getline-funktionen. Observera att de angivna strängarna eller texten läses in i strängobjektet mystr tills ' n' påträffas.
C ++ Substr
Funktionsprototyp: strängsubstrat (size_t startpos, size_t endpos)
Parameter (er): startpos => Startposition varifrån substratet ska extraheras.
endpos => Slutposition för underlag.
Returvärde: Returnerar en sträng som är en delsträng av den överordnade strängen.
Beskrivning: Denna funktion returnerar en delsträng av en given sträng. Funktionen tar start- och slutpositionerna som parametrar och returnerar sedan karaktärssekvensen mellan dessa positioner.
Exempel:
#include #include using namespace std; int main() { string mystr = 'SoftwareTestingHelp'; string mysub = mystr.substr(0,8); cout<<'Input string : '< Produktion:
Inmatningssträng: SoftwareTestingHelp
Substring (0,8): Programvara

C ++ längd
Strängens längd är antalet tecken som finns i strängen. Std :: strängobjektrepresentation av strängar i C ++ använder funktionerna längd () för att returnera strängens längd.
Bortsett från detta har vi också en storleksmetod som returnerar storleken på strängen. Vi har använt storleksmetoden i exemplet nedan för funktionen längd (). En annan funktion som returnerar strängens längd är 'strlen'. Den här funktionen returnerar längden på strängen som anges med en teckenmatris.
Vi kommer att se båda funktionerna en efter en med exempel.
längd()
Funktionsprototyp: storlek_t längd ()
Parameter (er): Åberopas av strängen vars längd ska hittas.
Returvärde: Returnerar en parameter parameter size_t som är längden på strängen.
Beskrivning: Denna funktion hittar längden på det strängobjekt som det åberopas med.
Exempel:
#include #include using namespace std; int main() { string mystr = 'SoftwareTestingHelp'; cout<<'Input string : '< Produktion:
Inmatningssträng: SoftwareTestingHelp
Strängens längd (med längdmetod) är: 19
Storleken på strängen (med storleksmetod) är: 19

grundläggande c ++ intervjufrågor
I ovanstående program använder vi både längd- och storleksfunktionerna för std :: -strängen som returnerar längden respektive storleken på strängobjektet. När längd och storlek returnerar antalet tecken i strängen får vi samma utdata.
strlen ()
Funktionsprototyp: size_t strlen (const char * str);
Parameter (er): str => Pekare till en nollavslutad sträng vars längd ska hittas.
Returvärde: R eturns size_t värde som anger längden på strängen str.
Beskrivning: strlen () -funktionen returnerar längden på den null-avslutade strängen. Strängen som tas som en parameter av strlen-funktionen är en null-terminated character array.
Exempel:
#include #include using namespace std; int main() { char mystr1() = 'This a our first string'; char mystr2() = 'This is our second string'; int len_mystr1 = strlen(mystr1); int len_mystr2 = strlen(mystr2); cout << 'Length of mystr1 = ' << len_mystr1 << endl; cout << 'Length of mystr2 = ' << len_mystr2 << endl; if (len_mystr1> len_mystr2) cout << 'mystr1 is longer than mystr2'; else if (len_mystr1 < len_mystr2) cout << 'mystr2 is longer than mystr1'; else cout << 'mystr1 and mystr2 are equal in length'; return 0; }
Produktion:
Längd på mystr1 = 23
Längd på mystr2 = 25
mystr2 är längre än mystr1

I ovanstående program har vi definierat två olika strängar och vi hittar deras individuella längd med strlen-funktionen. Sedan jämför vi längden på de två strängarna och avgör om strängarna är lika eller ojämna.
C ++ Sök
Funktionsprototyp: size_t hitta (sträng mysub)
Parameter (er): mysub => Strängobjekt att hitta inuti föräldersträngen.
Returvärde: size_t => Substringens första position i överordnad sträng
Beskrivning: Strängens sökfunktion används för att hitta positionen för strängen i överordnad sträng. Denna funktion anropas av överordnad sträng och en delsträng vars position ska hittas skickas som en parameter. Om underlaget inte finns, returneras ett tomt läge.
Exempel:
#include #include using namespace std; int main() { string mystr = 'SoftwareTestingHelp'; string mysub = 'Test'; size_t pos = mystr.find(mysub); if (pos != string::npos) cout << 'First occurrence of string '< Produktion:
Första förekomst av strängtest: 8
Första förekomst av stränghjälp: 15

Detta program definierar en sträng som “SoftwareTestingHelp”. Med hjälp av sökfunktionen hittar vi den första förekomsten av strängen 'Test' i den överordnade strängen. Därefter hittar vi förekomsten av 'Hjälp' -strängen. Utgången är positionen för förekomsten av den sökta strängen.
Delad sträng
Att dela en sträng med en avgränsare eller en token är en användbar åtgärd. I C ++, eftersom vi har mer än en representation av strängar, kan vi använda olika metoder för att dela en sträng. Här kommer vi att diskutera två sätt att dela en sträng.
Splitting std :: string Object
Det enklaste sättet att dela ett strängobjekt är att använda 'substr' -funktionen på objektet och tillhandahålla avgränsaren som slutposition så att vi får substringen. På detta sätt kan vi dela strängen på avgränsare tills vi har passerat hela strängen.
oracle soa intervju frågor och svar för erfarna
Låt oss se exemplet nedan som först hittar positionen för avgränsaren med hjälp av 'hitta' -funktionen och sedan hittar understrängen och slutligen matar ut vart och ett av tokens.
#include #include using namespace std; int main() { string mystr = 'This_is_software_testing_help'; string delimiter = '_'; size_t pos = 0; string token; while ((pos = mystr.find(delimiter)) != std::string::npos) { token = mystr.substr(0, pos); cout << token << endl; mystr.erase(0, pos + delimiter.length()); } cout << mystr<< endl; }
Produktion:
Detta
är
programvara
testning
hjälp

Som visas i ovanstående program anger vi en avgränsare som ska användas för att dela upp den givna strängen. I en slinga hittar vi upprepade gånger förekomsten av avgränsare med hjälp av sökfunktionen och skickar den till substrfunktionen och hämtar substringen. Sedan visas vart och ett av dessa erhållna tokens som utdata.
Dela karaktärsarray med strtok-funktion
Ett annat sätt att tokenisera en sträng (dela sträng med en avgränsare) är att använda funktionen ”strtok”. Vi kommer att diskutera detaljerna i 'strtok'-funktionen nedan.
Funktionsprototyp: char * strtok (char str (), const char * avgränsning)
Parameter (er): str () => Sträng som ska delas.
Avgränsa => Avgränsare på vilken strängen ska delas.
Returvärde: Returnerar nästa token efter att ha splittrat den överordnade strängen.
Beskrivning: Strtok-funktionen delar upp den givna strängen i tokens på givna avgränsare. Denna funktion måste kallas i en slinga så att vi får alla tokens för en given sträng. När det inte finns fler polletter kvar returnerar funktionen null.
Exempel:
#include #include using namespace std; int main() { char mystr() = 'This_is_software_testing_help'; char *token = strtok(mystr, '_'); while (token != NULL) { cout< Produktion:
Detta
är
programvara
testning
hjälp

Observera att i det här programmet använder vi strtok-funktionen som tar en sträng och avgränsare som argument. Sedan delar den strängen i token, baserat på den angivna avgränsaren och visar de enskilda tokens.
Slutsats
Vi har sett några av de allmänna viktiga funktionerna som används för C ++ - strängar i denna handledning.
Vi diskuterade funktionerna för att läsa en inmatningssträng, hitta en sträng, delsträng av överordnad sträng, strängens längd, dela en sträng, etc. tillsammans med deras variationer. Dessa funktioner hjälper oss att läsa och manipulera strängar effektivt.
I vår nästa handledning kommer vi att se några av de omvandlingsfunktioner som används med C ++ -sträng i detalj.
=> Besök här för att se hela C ++ träningsserien för alla.
Rekommenderad läsning
- Python-strängfunktioner
- Java String med String Buffer och String Builder Tutorial
- C ++ teckenkonvertering Funktioner: char till int, char till string
- VBScript-strängfunktioner: VBScript inStr, Ersätt, Mellan- och Trimfunktioner
- Python String Split Tutorial
- C # Stränghandledning - Strängmetoder med kodexempel
- Python-funktioner
- String Array C ++: Implementering & representation med exempel