[c++] usuwanie literek z wyrazu

witam dostałem takie polecenie, mianowicie: wczytaj imię i nazwisko , następnie użytkownik podaje literkę do skasowania i usunięcia literki z imienia i nazwiska. nie wiem kompletnie jak się do tego zabrać, a może służy tutaj jakieś specjalne polecenie?

narazie mam taki kod:

#include 

#include 

using namespace std;

int main()

{ int i,y;

    char im[10];

    char nazw[20];


    cout<<"Podaj ile literek nosi twoje imie: ";

    cin>>i;

    cout<<"Podaj ile literek nosi twoje nazwisko: ";

    cin>>y;

    cout<<"Podaj imie: ";

    cin>>im[i];

    cout<<"Podaj nazwisko: ";

    cin>>nazw[y];

    system("PAUSE");

}

Czemu pytasz użytkownika o liczbę liter w imieniu i nazwisku? Przecież to jest niepotrzebne.

Czemu chcesz zapisać ciąg znaków do jednej komórki tablicy?

I w programowaniu nie ma poleceń.

Dobrze zacząłeś - od tablic do przechowywania imienia i nazwiska.

Następny krok to wczytanie do nich imienia i nazwiska od użytkownika. Tylko zrób to dobrze, bo jak na razie, to przekombinowałeś :slight_smile:

Potem pewno trzeba będzie pobrać literkę do usunięcia.

Następnie można np. przepisać tablice do innej tablicy z pominięciem niechcianej litery (tu będzie potrzebna pętla). Dla wygody proponowałbym to zrobić w oddzielnej funkcji.

Tyle.

można trochę ściślej z tą pętlą, nie za bardzo jeszcze umiem programować dopiero się uczę, jakąś dokładniejszą wskazówkę?

zmieniłem trochę, ale chyba nie o to chodziło:

Nie wiem, co Ci odpisać na ten kod…

Lepiej jednak się poucz, masz jakąś książkę? Jeśli nie, to zacznij chociaż od tego: http://pl.wikibooks.org/wiki/C#C_dla_pocz.C4.85tkuj.C4.85cych

Rzeczywiście nie o to chodziło. Znowu robisz te same błędy - wpisujesz ciąg znaków do zmiennej typu char (jeden znak). I gratulacje pomysłu z tym “im-c” :smiley:

Może coś takiego, ale nie znam za bardzo C++

#include 

#include 

#include 

using namespace std;

int main() {

string im, naz;

char c;

cout<<"Podaj imie: ";

cin>>im;

cout<<"Podaj nazwisko: ";

cin>>nazw;

cout<<"Ktora literke usunac z imienia? :";

cin>>c;

int i;

string im2 = '';

string naz2 = '';

for (i=0;i<=strlen(im);++i) if (im[i] != c) {im2 += im[i];};

for (i=0;i<=strlen(naz);++i) if (naz[i] != c) {naz2 += naz[i];};

cout << "im2 naz2";

getch();

}

Poczytaj tu o string

rozwalkompa - dlaczego wrzuciłeś gotowca?

To nie jest gotowiec tylko przykład (podejrzewam, że z błędami). Chciałem pokazać co robi źle.

Problem w tym, że on nic nie robi dobrze, bo wyraźnie widać, że nie ma pojęcia nawet o podstawach programowania.

A Ty rzucając gotowca nie pomogłeś mu, lecz przeszkodziłeś.