ďťż

Ładny brzuch

Ma to być program do którego wprowadzamy ciąg znaków, następnie jakiś jeden znak który zostanie wykluczony z tego ciągu.

Zrobiłem takie coś, ale nie działa zbyt dobrze.

#include <stdio.h> #include <string.h> #define MT 30 void czytaj(char*, char); void zmiana(char*, char); int main() { char tab[MT]; char znak; czytaj(tab,znak); printf("\n\n\tNapisales: "); printf("%s", tab); printf("\t\nPodales znak: "); printf("%c", znak); printf("\n\n\n"); zmiana(tab, znak); printf("\nPo odjeciu znaku od ciagu znakow zostanie:\n"); printf("%s", tab); getch(); return 0; } void czytaj(char* t, char z) { printf("Podaj ciag znakow: "); fgets(t, strlen(t), stdin); printf("Podaj znak jaki ma zostac usuniety: "); scanf("%c", &z); } void zmiana(char* n, char z) { int i; char v = ' '; for(i=0; i<strlen(n); ++i) { if(n[i] == z) n[i] = v; } }

Da się to jakoś poprawić żeby działało poprawnie ? Czy ogólna koncepcja jest dobra? Jak tak to jak to zmusić do działania.
Użytkownik katarina edytował ten post 30 styczeń 2010, 11:13


Takie poprawki:

void czytaj(char*, char); --> void czytaj(char*, char*);

Oczywiście konsekwentnie zmień w definicji.
Do funkcji czytaj przekazujesz adres zmiennej znak

czytaj(tab,znak); --> czytaj(tab,&znak);

i zmieniasz konsekwentnie w funkcji czytaj

scanf("%c", &z); --> scanf("%c", z);
Użytkownik imcpan edytował ten post 27 styczeń 2010, 11:43
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •