#include <stdio.h>
/******************************************************************************
* 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;
}