Úloha 6.6
Napíšte program, zdrojový kód, v jazyku C použitím štandardu C17, ktorý definuje funkciu pre výpočet dĺžky reťazca.
Funkcia má jeden argument typu char* , ktorý vyjadruje reťacez znakov. Funkcia vracia hodnotu typu int, ktorá sa
rovná počtu znakov vo vstupnom reťazci.
Pre implementáciu nepoužite knižnicu <string.h> ani žiadnu inú okrem <stdio.h>.
Pri implementácií použitie inkrementáciu pointrov, resp. pričítanie čísla (int) k pointru.
Warning
Pamätajte, že každý reťazec je ukončený znakom \0.
Príklady vstupov / výstupov programu
- pre vstupný reťacez “Milan” funkcia vráti 5
- pre vstupný reťacez “Cvicenie6” funkcia vráti 9
- pre vstupný reťacez "" funkcia vráti 0
Rozbaľ pre ukážku riešenia
#include <stdio.h>
// Funkcia na výpočet dĺžky reťazca
int stringLength(char *str) {
int length = 0;
// Inkrementácia pointeru, kým nedosiahne nulový znak '\0'
while (*str != '\0') {
length++;
str++; // Posun pointera na ďalší znak
}
return length;
}
int main() {
// Testovacie reťazce
char str1[] = "Milan";
char str2[] = "Cvicenie7";
char str3[] = "";
// Výstupy funkcie pre rôzne vstupy
printf("The length of the string \"%s\" is %d\n", str1, stringLength(str1));
printf("The length of the string \"%s\" is %d\n", str2, stringLength(str2));
printf("The length of the string \"%s\" is %d\n", str3, stringLength(str3));
return 0;
}Vysvetlenie
Funkcia stringLength:
- Prijíma jeden argument typu char*, ktorý ukazuje na reťazec znakov.
- Používa while cyklus na iteráciu cez znaky reťazca.
- Pointer str sa posúva na ďalšiu pozíciu pomocou str++, kým nedosiahne koncový nulový znak ‘\0’.
- Premenná length sa inkrementuje pri každom kroku, čím uchováva počet znakov v reťazci.
Hlavný program:
- Testuje funkciu s rôznymi vstupnými reťazcami vrátane prázdneho reťazca.
- Výsledky funkcie sa vypisujú na štandardný výstup.
Obmedzenia:
- Funkcia nevyžaduje žiadne externé knižnice okrem <stdio.h>.
- Reťazec musí byť ukončený nulovým znakom ‘\0’ (čo je štandard pre reťazce v C).