Algoritm pentru determinarea numărului de apariții a unui caracter într-un șir (Metoda II)

Se citește de la tastatură un șir de caractere și un caracter. Să se elimine din șir toate aparițiile caracterului introdus, după care să se afișeze șirul modificat. Programul trebuie să fie case sensitive, adică să facă diferența dintre litere mici și litere mari.

Se citesc de la tastatură atât șirul de caractere, cât și caracterul care va fi eliminat. Acest algoritm este ceva mai elevat, folosind pointeri. Se folosește funcția strchr, una dintre funcțiile elementare care se pot aplica peste șirurile de caractere. Se atribuie pointerului p adresa la care apare prima dată litera cerută, iar atâta timp cât acesta nu a ajuns la final și este găsită litera cerută, contorul crește cu o unitate. După creșterea contorului, se caută la dreapta poziției în care a fost găsită ultima dată litera.

Vezi și: Algoritm pentru determinarea numărului de apariții a unui caracter într-un șir (Metoda I)

#include<iostream>
#include<cstring>
using namespace std;
int main()
{
    char s[100], *p,x;
    cout<<"Care este sirul? "; cin.get(s,99);
    cout<<"Litera? "; cin>>x;
    int c=0;
    p=strchr(s,x);
    while (p)
    {
      c++;
      p=strchr (p+1, x);
    }
    cout<<"apare de"<<c;
    return 0;
}

De asemenea, ai putea dori...

Lasă un răspuns

Acest sit folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.