#include /****************************************************************************** * Wyznacz dlugosc napisu `s`. * * Przyklad: * wejscie: s = "TEST" * wyjscie: 4 *****************************************************************************/ int strlen(char* s) { int n = 0; // petla ma sie wykonywac dopoki nie napotkamy zera (konca napisu) while (*s != 0) { n++; // zwieksz licznik dlugosci napisu s++; // przesun sie do nastepnego znaku w napisie } return n; } /****************************************************************************** * Sprawdz czy w napisie `s` znajduje sie litera `c`. * * Przyklad: * wejscie: s = "TEST", c = 'P' * wyjscie: 0 * * wejscie: s = "TEST", c = 'E' * wyjscie: 1 *****************************************************************************/ int contains(char* s, char c) { // wykonuj dopoki nie napotkasz zera (konca napisu) while (*s != 0) { // jesli znajdziesz szukany znak `c`, zakoncz z wynikiem 1 if (*s == c) { return 1; } // w przeciwnym razie, przesun sie do kolejnego znaku w napisie s++; } return 0; } /****************************************************************************** * Wypisz napis `s` w odwrotnej kolejnosci. * * Przyklad: * wejscie: s = "ABCD" * na ekranie: DCBA *****************************************************************************/ void print_rev(char *s) { char *ps = s; // przesun sie na koniec napisu while (*ps != 0) { ps++; } do { ps--; // wycofaj sie o jedna pozycje w napisie printf("%c", *ps); // wypisz znak } while (ps != s); // zakoncz petle jesli wrociles do poczatku napisu } int main() { char s[10]; scanf("%s", s); int n = strlen(s); printf("Dlugosc napisu: %d\n", n); char c = 's'; int flag = contains(s, c); printf("Czy napis zawiera litere %c: %s\n", c, flag ? "TAK" : "NIE"); printf("Napis odwrocony: "); print_rev(s); printf("\n"); return 0; }