Witam,
Stworzyłem sobie taką o to funkcję, która zwraca długość podanego jako parametr ciągu znaków:
#include <stdio.h>
#include <string.h>
int DlugoscCiagu(const char* napis);
int main()
{
char ciagznakow[]="Matematyka pasja informatyka.";
printf("Dlugosc podanego jako parametr ciagu znakow wynosi: %d", DlugoscCiagu(ciagznakow));
return 0;
}
int DlugoscCiagu(const char* napis)
{
int length=0;
length=strlen(napis);
return length;
}
Wszystko działa zwraca: 29 czyli poprawnie, ale teraz mam następujący problem, chciałbym, żeby znak końca łańcucha również został zwrócony, więc z materiałów, z których korzystałem rozumiem, że w funkcji, powinienem zamienić strlen na sizeof: length=sizeof(napis) i to moim zdaniem powinno zwrócić o 1 więcej czyli 30. Niestety cały czas zwraca wartość 4. W czym tkwi problem?
#include <stdio.h>
#include <string.h>
int DlugoscCiagu(const char* napis);
int main()
{
char ciagznakow[]="Matematyka pasja informatyka.";
printf("Dlugosc podanego jako parametr ciagu znakow wynosi: %d", DlugoscCiagu(ciagznakow));
return 0;
}
int DlugoscCiagu(const char* napis)
{
int length=0;
length=sizeof(napis);
return length;
}
Zdjęcie: