Przejdź do głównej zawartości

Funkcja Zastap

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”

#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;
}

Komentarze

Prześlij komentarz

Popularne posty z tego bloga

Rekurencyjny algorytm szybkiego potęgowania O(log n)

/* Title: Rekurencyjny algorytm szybkiego potęgowania o złożoności O(log n) */ #include <stdio.h> int potegowanie(int podstawa, int wykladnik); int main() { int wynik = potegowanie( 2, 6 ); /* 2^6 */ printf( "Wynik potegowania 2^6: %i\n", wynik ); /* Wynik 64 */ return 0; } int potegowanie( int podstawa, int wykladnik ) { if( wykladnik == 0 ) /* Potęgowanie podstawy o wykładniku równym 0 */ { return 1; } else if( wykladnik % 2 == 1 ) /* Dla wykładnika nieparzystego */ { return podstawa * potegowanie( podstawa , wykladnik - 1 ); } else /* Dla wykładnika parzystego */ { return potegowanie( podstawa * podstawa, wykladnik / 2 ); } }

Funkcja, Makro, MsgBox, InputBox i równanie funkcji.

Napisać funkcję użytkownika , która opisuje podaną zależność           | x + a     dla  -a <= x <= 0 f(x) = | -x + a    dla   0 <= x <= a           a > 0           | 0           dla pozostałych x Zastosować funkcję w arkuszu. Następnie napisać procedurę przypisaną do obiektu w arkuszu, która dla zadanych wartości a oraz x wprowadzanych przez użytkownika wywołuje funkcję i wyświetla wynik w oknie MsgBox . Umieścić w arkuszu okno InputBox lub kontrolki do wprowadzania wartości wejściowych. Funkcja: Function Funkcja(a As Integer, x As Integer) If -a <= x And x <= 0 Then Funkcja = x + a ElseIf x >= 0 And x <= a Then Funkcja = (-x) + a Else Funkcja = 0 End If End Function Makro:   Sub Makro1() Dim x As Integer, a As Integer x = InputBox("Podaj x", "Podaj x") a = I...