Sorter tegn på en streng i C ++

Sorter tegn på en streng i C ++
Sortering av en streng regnes som en organisasjon i en stigende eller synkende rekkefølge, eller en hvilken som helst gitt ordre i C ++, som ikke er noe mer enn å skaffe strengene gitt i en passende rekkefølge eller gitt ordre kan uttrykkes ettersom strengene er sortert i den spesifiserte ordrenarrangementet. Et sorteringsprograms utgang er en omorganisert inngang eller en permutasjon av den inngangen. I C ++ er det flere metoder for sortering av strenger ved å implementere sorteringsalgoritmer: Bubble Sort, Insertion Sort, STL Libraries, etc. Disse metodene sorterte strengtegnene i stigende eller reduserende ordrer.

Metoder for sortering av streng og tegn på en streng i C++

Det er forskjellige sorteringsstrategier tilgjengelig for å ordne en streng i en viss rekkefølge. Blant dem er:

Boble sort

En av de enkleste sorteringsalgoritmene i C ++ er boble -sortering. Strengene sorteres ved hjelp av denne tilnærmingen ved å sammenligne de nærliggende strengene eller tegnene i strengen. Bytt dem deretter i den medfølgende rekkefølgen, som kan være alfabetisk anordnet i C++.

Innsettingssort

Innsettingsalgoritmen velger tegnene en om gangen og setter dem inn i riktig posisjon. Hver iterasjon av innsettingssortmetoden tar et tegn fra den gitte listen og setter den inn i den sorterte understrengen. Metoden tar tegnet og setter den inn i riktig posisjon avhengig av ASCII -verdien mens du sorterer alfabetisk.

Standard bibliotekfunksjon

Ved å importere overskriftsfilen i koden vår, kan vi bruke Sorter -metoden fra C ++ Standard Template Library. Sammenlignet med å lage koden, er det enklere og raskere å bruke denne innebygde metoden.

Vi kan også bruke std :: sorter () i C++. STD :: sort () er en standard malbibliotek (STL) -funksjon i C++. Metoden aksepterer en begynnelse og en slutt iterator og er som standard ordnet i stigende rekkefølge. Ved å levere en komparatoroperasjon som returnerer en boolsk, kan metoden også brukes til spesifikk sortering.

Eksempel 1

Sorterfunksjonen er en av de enkleste måtene å sortere strengkarakteren. Det eneste som kreves er bare å importere standardbiblioteket til C++. Koden begynner med å importere standarden “STDC++.H ”-bibliotek i overskriftsdelen. Biblioteket inneholder alle standardbibliotekfilene. "Namespace std" er også inkludert i koden.

Etter overskriftsdelen har vi laget en tomfunksjon som "MyString" og passert en referansestreng "Sortstr" i konstruktøren. Deretter har vi påkalt sorteringen () -metoden i "myString" -funksjonen. Sorter () -metoden har start -iterator og slutt iterator, som sorterer strengtegn i stigende rekkefølge. Den sorterte strengen vil bli skrevet ut gjennom cout -setningen.

Nå har vi hovedfunksjonen der vi har erklært en streng som "strVal" og initialisert den. Strengen "strVal" sendes i funksjonen "MyString" for å sortere den gitte strengen.

#inkludere
ved hjelp av navneområdet STD;
void myString (String & sortstr)

Sorter (sortstr.Begynn (), Sortstr.slutt());
cout << SortStr;

int main ()

String strval = "programmeringsslanguage";
MyString (strVal);
cout << "\n";
retur 0;

Sorter () -metoden sorterte strengtegnene i stigende rekkefølge. Resultatet av stigende ordrestrengtegn vises på bildet.

Eksempel2

Vi kan også sortere streng- eller strengtegn ved å bruke STD :: Sorter-metoden, som er inkludert i C ++ innebygd bibliotek . Følgende kode har to biblioteker, "iostream" og "algoritme" i overskriftsseksjonen. Gjennom biblioteket “Algoritme” kan vi få tilgang til STD :: Sorter -metoden.

Etter toppseksjonen har vi hovedfunksjonen der vi har definert en strengmatrise som "farger" og initialisert den med noen ord. Deretter må vi definere en matrise størrelse lik "5" i et "arrsize" av datatype heltall. Nå tar bruk av STD :: sorteringsmetoden en rekke "farger" og matrisestørrelsen som et argument for å sortere strengen.

Det er en for sløyfeoppgave i neste kodelinje, som itererer sløyfen til array -størrelsen “5” for en strengmatrise. Cout -uttalelsen vil skrive ut den sorterte matrisen i stigende rekkefølge.

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
Strengfarger [] = "rosa", "grå", "gul", "blå", "rød";
int arrsize = 5;
std :: sorter (farger, farger + arrdize);
for (int a = 0; a < 5; a++)
cout<
retur 0;

Utgangen fra standard bibliotekfunksjonsstrengen vist nedenfor er sortert i alfabetisk rekkefølge.

Eksempel 3

En effektiv strategi vil være først å legge merke til at det bare kan være 26 distinkte tegn. Så i en hash -matrise kan vi lagre antall forekomster av hver karakter fra 'A til' z.'Vi vil bare søke på hash -matrisen og sende ut tegnene fra' A 'til' Z 'når de vises flere ganger i inngangsstrengen. For å implementere koden har vi importert et standardbibliotek, “STDC++.H ”som hjelper oss å sortere den spesifiserte matrisen.

Nå har vi erklært variabelen “tegn” med nøkkelordet “const” og initialisert det med verdien “26”. Deretter har vi en funksjon som heter "Sortstr" som tar referansen til en sortert streng som "strx". I funksjonen har vi opprettet en hasj -matrise som "countchar". Opprinnelig initialiseres startkaraktertallet med null. Etter initialiseringen av hasj -arrayen har vi en for sløyfeoppgave som krysser strengen og trinnene karaktertallet. Hashed Array's første indeks representerer karakteren 'A'; det andre representerer 'B,' etc.

Så for karakterens posisjon i tellingen av en hasjgruppe, brukte vi strx [i]-'a'. Vi har en nestet sløyfe for å krysse og sammenligne tegnet gjennom strengen. Hvis variabelen “J” i løkken er større enn tellekarakteren i variabelen “I”. Stringen hash -matrisen vil krysse og skrive ut tegnene. I de siste linjene har vi hovedfunksjonen der vi har erklært og initialisert strengen for funksjonen "MyString".

#inkludere
ved hjelp av navneområdet STD;
const int tegn = 26;
void sortstr (String & strx)

int countchar [tegn] = 0;
for (int i = 0; iCountchar [strx [i]-'a'] ++;
for (int i = 0; ifor (int j = 0; jcout << (char)('a'+i);

int main ()

String myString = "Welcome Friends";
Sortstr (myString);
cout <<"\n";
retur 0;

Utfallet av den sorterte tegnet til strengen vises på følgende terminalskjerm.

Eksempel 4

I C ++ programmering må vi be brukeren om å oppgi noen få navn for å arrangere strenger (navn) alfabetisk (strenger). Så, som angitt i koden nedenfor, sorterer disse inngangsstrengene eller navnene alfabetisk. Vi har boble -sorteringsalgoritmen for denne illustrasjonen. Koden har hovedfunksjonen der vi har definert et tegnsammer "Allname" av array størrelse "5" og karakterverdi på "10". Vi har også et annet utvalg av "navn" på datatypestreng og setter karakterverdien til "10".

Deretter har vi definert en heltallstypevariabel “x” og “y”. Karakteroppstillingen vil være brukerinngang i denne koden. Brukeren vil legge inn fem-tegns streng med navn. Nå har vi nestede sløyfeuttalelser, og i den nestede sløyfeblokken har vi en hvis tilstanden som bruker "STRCMP" -funksjonen for å sammenligne to strenger. Etter å ha sammenlignet strengene, har vi påkalt "Strcpy" -funksjonen for å bytte strengens navn. Som et resultat har vi den sorterte alfabetiske rekkefølgen på strengnavn.

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()

char allname [5] [10], navn [10];
int x, y;
cout<<"Enter Names: ";
for (x = 0; x> allname [x];
for (x = 1; x<5; x++)

for (y = 1; y0)

strcpy (navn, allname [y-1]);
strcpy (allname [y-1], allname [y]);
strcpy (allname [y], navn);



cout<<"\nAlphabetical order of Names :\n";
for (x = 0; x<5; x++)
cout<cout<retur 0;

Til å begynne med må du oppgi fem tilfeldige navn; Deretter vil det sortere strengnavnene i alfabetisk rekkefølge. De resulterende sorterte strengnavnene i alfabetisk rekkefølge vises nedenfor.

Konklusjon

Vi konkluderer med at karakteren til strengsortering i C ++ oppnås gjennom forskjellige sorteringsalgoritmer. Her utforsker vi hvordan du sorterer en streng i C ++ med noen sorteringseksempler og hvordan du sorterer en streng ved hjelp av noen få sorteringsalgoritmer. Alle implementeringer av koder gjøres i Ubuntu 20.04 Bruke G ++ -kompilatoren. Vi håper denne artikkelen har hjulpet deg bedre å forstå tilnærmingen til å bygge en tilpasset sortfunksjon for å sortere en uordnet streng med tegn og implementering i C++.