Witam, mam do zrobienia następujące zadanie:
Kombinuję i mam taki kod:
#include <iostream>
#include <cstdio>
using namespace std;
int dlugosc(char *tablica)
{
int dlugosc = 0;
for (int i=0; i<100;i++)
{
if ((tablica[i]>='a' && tablica[i]<='z') || (tablica[i]>='A' && tablica[i]<='Z'))
dlugosc ++;
}
return dlugosc;
}
int main()
{
char tablica[100];
cout << "Enter a string: ";
fgets (tablica,sizeof(tablica),stdin);
cout << "Dlugosc: " << dlugosc(tablica);
return 0;
}
I teraz pytania:
- W jaki sposób poprawnie przekazać argument tablica do funkcji przez adres? Obecnie wydaje mi się, że jest źle, ale po dodaniu ampersanta (dlugosc(&tablica);) lub gwiazdek przy każdym wystąpieniu "tablica" w funkcji dlugość, program się nie kompiluje. Nie potrafię znaleźć konkretnych informacji dot. takiego przekazywania tablic - wszędzie tylko są pojedyncze zmienne, dlatego prosiłbym o wytłumaczenie, jak należy to prawidłowo robić
- Dlaczego funkcja nieprawidłowo zlicza liczbę liter w tablicy? Po wpisaniu np. słowa kot, funkcja dlugosc zwraca 26, zamiast 3.
Z góry proszę o wyrozumiałość, bo jestem mocno początkujacy w programowaniu i po prostu mam problem z niektórymi zagadnieniami ;d