Napisać funkcję char *Zastap(const char *napis) , która będzie usuwała z tekstu zawierającego liczby całkowite i litery, wszystkie znaki, które nie wchodzą w skład liczby. Pozostawione liczby mają być oddzielone jedną spacją. Nowy tekst jest zwracany jako wskaźnik do poprawionego napisu.
Przykład:
‘’ 123 zl 50 zl 632 zl 56zl’’
Po przekształceniu:
‘’ 123 50 632 56”
Przykład:
‘’ 123 zl 50 zl 632 zl 56zl’’
Po przekształceniu:
‘’ 123 50 632 56”
#include <stdio.h> #include <stdlib.h> #include <string.h> #define xmalloc(typ, ilosc) (typ*) _new((ilosc)*sizeof(typ)) void* _new(size_t rozmiar) { void* p; p = malloc(rozmiar); if(p == NULL) { printf("Brak pamieci!"); exit(0); } return p; } char *Zastap(const char *napis) { char *nowy = xmalloc(char, strlen(napis)); while( (*++napis) != '\0') { if( (*napis >= '0' && *napis <= '9') || (*napis == ' ' && *(napis+1) > '9') ) { sprintf(nowy, "%s%c", nowy, *napis); } } return nowy; } int main() { char *alfa = NULL; alfa = Zastap(" 123 zl 50 zl 632 zl 56zl"); printf("%s", alfa); return 0; }
Ten komentarz został usunięty przez autora.
OdpowiedzUsuń