minghags 0 Junior Poster in Training

I want to change chars in string like this: if i input DaniWeb it will change it to EbojZfc I've come so far:

But this changes to z at the end :S Please any help...

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int numChars(string besedilo);
int numWords(string besedilo);
int reverseString(string besedilo);
int numC( string str );
int numZ( string str );
int numS( string str );
void removeDots(string besedilo);

int numChars(string besedilo)
{
    int znaki=0;
    int vrstica=0;

        vrstica=besedilo.length();
        znaki=znaki+vrstica;
    
    return znaki;
}
int numWords(string besedilo)
{
    int besede=0;
    string vrsta;
    
        vrsta=besedilo;
        for(int b=0;b<besedilo.length();b++)
        {
            if(vrsta[b]==' ' || vrsta[b]=='\n')
            {
                besede++;
            }
        }
        besede++;
    
    return besede;
}

int reverseString(string besedilo)
{
        string reverseBesedilo = besedilo;
        reverse(reverseBesedilo.begin(), reverseBesedilo.end());
        cout << reverseBesedilo << endl;
}

int numZ( string str )
{
    int countChar = 0;
    
    for (int i = 0; str[i] != '\0'; i++)
    {
        if ( str[i] == 'z' )
            countChar++;
    }
    
    return countChar;
}

int numS( string str )
{
    int countChar = 0;
    
    for (int i = 0; str[i] != '\0'; i++)
    {
        if ( str[i] == 's' )
            countChar++;
    }
    
    return countChar;
}

int numC( string str )
{
    int countChar = 0;
    
    for (int i = 0; str[i] != '\0'; i++)
    {
        if ( str[i] == 'c' )
            countChar++;
    }
    
    return countChar;
}

void removeDots(string besedilo)
{
    for(int i = besedilo.find(",", 0); i != string::npos; i = besedilo.find(",", i))
    {
        besedilo.erase(i,1);
        i++;
    }
    for(int i = besedilo.find(".", 0); i != string::npos; i = besedilo.find(".", i))
    {
        besedilo.erase(i,1);
        i++;
    }
    for(int i = besedilo.find("!", 0); i != string::npos; i = besedilo.find("!", i))
    {
        besedilo.erase(i,1);
        i++;
    }
    for(int i = besedilo.find(":", 0); i != string::npos; i = besedilo.find(":", i))
    {
        besedilo.erase(i,1);
        i++;
    }
    for(int i = besedilo.find(";", 0); i != string::npos; i = besedilo.find(";", i))
    {
        besedilo.erase(i,1);
        i++;
    }
    for(int i = besedilo.find("-", 0); i != string::npos; i = besedilo.find("-", i))
    {
        besedilo.erase(i,1);
        i++;
    }
    cout<<besedilo<<endl;
}

void replaceChar(string besedilo)
{
    replace(besedilo.begin(), besedilo.end(), 'a', 'b');
    replace(besedilo.begin(), besedilo.end(), 'b', 'c');
    replace(besedilo.begin(), besedilo.end(), 'c', 'd');
    replace(besedilo.begin(), besedilo.end(), 'd', 'e');
    replace(besedilo.begin(), besedilo.end(), 'e', 'f');
    replace(besedilo.begin(), besedilo.end(), 'f', 'g');
    replace(besedilo.begin(), besedilo.end(), 'g', 'h');
    replace(besedilo.begin(), besedilo.end(), 'h', 'i');
    replace(besedilo.begin(), besedilo.end(), 'i', 'j');
    replace(besedilo.begin(), besedilo.end(), 'j', 'k');
    replace(besedilo.begin(), besedilo.end(), 'k', 'l');
    replace(besedilo.begin(), besedilo.end(), 'l', 'm');
    replace(besedilo.begin(), besedilo.end(), 'm', 'n');
    replace(besedilo.begin(), besedilo.end(), 'n', 'o');
    replace(besedilo.begin(), besedilo.end(), 'o', 'p');
    replace(besedilo.begin(), besedilo.end(), 'p', 'r');
    replace(besedilo.begin(), besedilo.end(), 'r', 's');
    replace(besedilo.begin(), besedilo.end(), 's', 't');
    replace(besedilo.begin(), besedilo.end(), 't', 'u');
    replace(besedilo.begin(), besedilo.end(), 'u', 'v');
    replace(besedilo.begin(), besedilo.end(), 'v', 'z');

    cout << besedilo << endl;
}

int main()
{
    string vrstica;
    string ime;
    int meni;
    
    cout<<"Vnesi besedilo: ";
    
    cout<<endl<<"-----------------------"<<endl;

        getline(cin,vrstica);
    
    cout<<"-----------------------"<<endl;
    
    do
    {
        cout<<"+++++++++++++++++++++++++++++++++++++++++++++++++"<<endl;
        cout<<"+    MENI:                                      +"<<endl;
        cout<<"+ 1. Izpise stevilo vnesenih znakov             +"<<endl;
        cout<<"+ 2. Izpise stevilo vnesenih besed              +"<<endl;
        cout<<"+ 3. Obrne niz                                  +"<<endl;
        cout<<"+ 4. Prešteje število sičnikov                  +"<<endl;
        cout<<"+ 5. Izbriše ločila                             +"<<endl;
        cout<<"+ 6. Kodiraj                                    +"<<endl;
        cout<<"+ 0. Izhod                                      +"<<endl;
        cout<<"+++++++++++++++++++++++++++++++++++++++++++++++++"<<endl<<endl;
        cin>>meni;
        if(meni==1)
        {
            cout<<"Stevilo znakov: "<<numChars(vrstica)<<endl;
        }
        if(meni==2)
        {
            cout<<endl<<"Stevilo besed: "<<numWords(vrstica)<<endl;
        }
        if(meni==3)
        {            
            cout<<reverseString(vrstica);
        }
        if(meni==4)
        {
            cout << "Stevilo S-ov: " << numS(vrstica) << endl;  
            cout << "Stevilo C-jev: " << numC(vrstica) << endl; 
            cout << "Stevilo Z-jev: " << numZ(vrstica) << endl; 
        }
        if(meni==5)
        {
            removeDots(vrstica);
        }
        if(meni==6)
        {
            replaceChar(vrstica);
        }
    }
    while(meni!=0);
    return 0;
}
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts learning and sharing knowledge.