Hvordan finne hyppigheten av tegn i en streng i C ++

Hvordan finne hyppigheten av tegn i en streng i C ++
I C ++ er strenger mye brukt til håndtering av data. Strenger kan lagre et overskytende antall tegn. Så noen ganger må vi se etter et spesifikt tegn inne i inngangsstrengen. For det må vi iterere gjennom hele strengen manuelt, noe som er på tide å snakke og umulig for store strenger. Så i denne artikkelen vil vi dekke hvordan man kan telle hyppigheten av et bestemt tegn inne i en C ++ -streng.

Innholdsfortegnelse

  • Hva er karakterfrekvens i en streng i C++
  • Hvordan finne hyppigheten av et tegn i en streng i C++
  • Hvordan finne hyppigheten av alle tegn i en streng i C++
  • Hvordan finne hyppigheten av et tegn i en brukerinngangsstreng i C++
  • Konklusjon

Hva er karakterfrekvens i en streng

Karakterfrekvens er antall ganger et bestemt tegn vises i en inngangsstreng. For eksempel i strengen "Hei Verden!” Hvis vi finner hyppigheten av tegnet 'O', resultatet vil være to.

Hvordan finne hyppigheten av et tegn i en streng i C++

Nedenfor gitt kode er et C ++ -program som finner karakterens frekvens i en streng.

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
String str = "linuxhint.com ";
char ch = 'i';
int count = 0;
for (int i = 0; i < str.length(); i++)
if (str [i] == ch)
telle ++;

cout << "The frequency of " << ch << " in " << str << " is: " << count;
retur 0;

Her i koden ovenfor, strengen “Linuxhint.com ” er tilordnet variabelen str, og karakteren 'Jeg' er tilordnet variabelen Ch.

Programmet initialiserer deretter variabel telling til 0 og løkker gjennom hvert tegn i strengen ved hjelp av en for sløyfe. For hvert tegn sjekker programmet om det samsvarer med karakteren Ch. Hvis det er en kamp, ​​økes tellevariabelen av 1.

Den siste delen av programmet skriver ut hyppigheten av tegnet Ch i strengen str bruker cout uttalelse.

Produksjon

I utgangen kan vi se hyppigheten av karakter Jeg er 2 i den definerte strengen “Linuxhint.com ”. Utgangen fra programmet ovenfor ville være:

Hvordan finne hyppigheten av alle tegn i en streng i C++

Følgende er et C ++ -program som finner hyppigheten av alle tegn i en gitt streng.

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
String str = "linuxhint.com ";
int count [256] = 0; // Forutsatt ASCII -karaktersett
for (int i = 0; i < str.length(); i++)
telle [int (str [i])] ++;

for (int i = 0; i < 256; i++)
if (count [i]> 0)
cout << "The frequency of " << char(i) << " in " << str << " is: " << count[i] << endl;

retur 0;

Her i eksemplet ovenfor tildelte vi strengen “Linuxhint.com ” til variabel str. Etter det programmet initialiserer et utvalg av størrelse 256, som er størrelsen på ASCII -karaktersettet. Hvert element i matrisen representerer en unik ASCII -karakter, og alle elementer er opprinnelig satt til 0.

Programmet løkker deretter gjennom hvert tegn i strengen ved hjelp av en for sløyfe, og øker det tilsvarende elementet i telleoppstillingen for hvert tegn. På denne måten teller programmet frekvensen av tegnene.

I den siste delen av programmet vil en løkke løpe gjennom telle-arrayen og skrive ut hyppigheten til hvert ikke-null-element, sammen med det tilsvarende tegnet og inngangsstrengen ved å bruke den cout uttalelse.

Produksjon

Her i utgangen kan vi se hyppigheten av alle tegn inne i strengen “Linuxhint.com ”. Utgangen til dette programmet vil være:

Hvordan finne hyppigheten av et tegn i en brukerinngangsstreng i C++

Nedenfor er et C ++ -eksempelprogram som finner karakterfrekvens i en brukerstreng.

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()
streng str;
char ch;
int count = 0;
cout << "Enter a string: ";
getline (cin, str);
cout << "Enter a character to find its frequency: ";
cin >> ch;
for (int i = 0; i < str.length(); i++)
if (str [i] == ch)
telle ++;

cout << "The frequency of " << ch << " in " << str << " is: " << count;
retur 0;

Ovennevnte program initialiserer en tom streng str, en karakter Ch, og et heltall teller til 0. Programmet ber deretter brukeren legge inn en streng ved hjelp av cout uttalelse. Neste getline () funksjon ved bruk av cin vil lese brukerinngang som tekst, symboler og mellomrom.

Programmet ber igjen brukeren om å legge inn et tegn for å finne frekvensen ved å bruke cout uttalelse og cin funksjon, som leser et enkelt tegn fra standard inngangsstrømmen.

Etter at programmet vil sløyfe gjennom hvert tegn i strengen ved hjelp av en for loop, og sjekk om det samsvarer med tegnet Ch. Hvis det er en kamp, ​​økes tellevariabelen med 1.

I den siste delen av koden vil programmet skrive ut hyppigheten av tegnet Ch I brukerinngangsstrengen ved hjelp av cout uttalelse.

Produksjon

Følgende er utgangen for brukerinngangsstrengen “Linuxhint.com ”. Her har vi funnet frekvensen for karakteren "Jeg" som er 2.

Konklusjon

I denne artikkelen har vi dekket hvordan du finner karakterfrekvenser i C ++ strenger. For å finne frekvensen av et spesifikt tegn inne i en streng, kan vi bruke en for loop som vil iterere gjennom hele inngangsstrengen og øke tellingen for et spesifikt tegn hver gang den finner i den strengen. For mer informasjon om å finne frekvenser av tegn i C ++, les artikkelen.