Witam. Mam do napisania program w którym:
- Za pomocą fgets wprowadzam napis o długości <=99 do globalnej statycznej tablicy
- Wpisuję znak
- Funkcja zmiana zastępuje wszystkie zadeklarowane przedtem w programie znaki (litera) na te wpisane przez użytkownika (znak)
- Wypisanie napisu
Mam takie coś:
#include <iostream>
#include <cstdio>
using namespace std;
char tablica[100];
void zmiana(char litera, char znak)
{
for (int i=0;i<99;i++)
{
if (tablica[i]=='\0')
break;
else
{
if (tablica[i]==litera)
tablica[i]=znak;
else
i++;
}
}
}
int main()
{
char znak;
char litera = ' ';
cout << "Enter a string: \n";
fgets (tablica,sizeof(tablica),stdin);
cout << "Enter a character: \n";
cin >> znak;
zmiana(litera,znak);
cout << tablica;
return 0;
}
I niestety program działa częściowo. Na przykład po wpisaniu:
ala ma dwa koty
a następnie x jako znaku, który ma wskoczyć za spację dostaję:
ala maxdwa koty
zamiast alaxmaxdwaxkoty
Gdzie tkwi problem?