Funkcja przepisująca napis od tyłu.

0

Napisz funkcję, która otrzymuje jako argumenty dwa napisy i przepisuje
pierwszy do drugiego od końca. Zakładamy, że pierwszy napis zmieści się w drugim.
Nie jest dozwolone użycie funkcji bibliotecznych. Program nie działa dlaczego ?

#include <stdio.h>
void fun(char* napis1, char* napis2)
{
    int i, n = 0;
    while (napis1[n++] != '\0')

        for (i = n - 1; i >= 0; i--) {
            printf("%s", napis2[i]);
        }
}
int main()
{
    char napis1[10], napis2[10];
    scanf("%s", &napis1);
    fun(napis1, napis2);
    return 0;
}
 
0

Nie działa ponieważ nie znasz wartości zmiennej n w funkcji fun. Jeżeli chcesz kontynuować swój sposób, musisz najpierw znaleźć koniec drugiego napisu.

0

W petli while wartosc n nie zwieksza sie o 1 za kazdym razem ?

0

Sorry, oczywiście nie doczytałem. W dalszym ciągu zrobiłbym to tak jak myślałem na początku, ponieważ Twoja wersja, po poprawieniu błędu i tak wyświetli coś w stylu(dla "wejs" na wejściu):

w
ew
jew
sjew

Najpierw zlicz ile znaków jest to przepisania, a dopiero potem wyśwetlaj.

Druga sprawa: napis2 jest puste :)
Jeszcze jedno, do wyświetlania pojedynczego znaku służy %c, natomiast %s służy do wyświetlania stringa zakończonego znakiem \0.

1 użytkowników online, w tym zalogowanych: 0, gości: 1