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ń