Witam mam chcę aby funkcja wypisała mi długość łańcucha znaków i coś nie gra pomoże ktoś ? ;) :
void check(char t[])
{
int n=strlen(t);
printf("%d",n);
}
a w funkcji main wywołuje ją z argumentem tablicy zawierającej łańcuch znaków
Witam mam chcę aby funkcja wypisała mi długość łańcucha znaków i coś nie gra pomoże ktoś ? ;) :
void check(char t[])
{
int n=strlen(t);
printf("%d",n);
}
a w funkcji main wywołuje ją z argumentem tablicy zawierającej łańcuch znaków
@sabek przecież napisałeś tylko wrapper na funkcję strlen
i nic innego.
unsigned len(const char *string)
{
unsigned count = 0;
for(;string[count] != '\0'; ++count);
return count;
}
wiem, że temat trywialny ale robie pierwsze programy rozdzielając je na pliki źródłowe i makefile itp... jeszcze jedno pytanie jakaś wskazówka czemu wczytuje mi same słowa a jak dam dłuższy łańcuch znaków z spacją to dupa ?
#include <string.h>
#include <stdio.h>
int main(void)
{
char tekst[100];
printf("Podaj tekst do sprawdzenia\n");
scanf("%s",tekst);
printf("Wczytany tekst: %s",tekst);
check(tekst);
return 0;
}
void check(char t[])
{
int n=strlen(t);
printf("%d\n",n);
}
Użyj fgets
: http://stackoverflow.com/questions/7710141/strlen-function-giving-wrong-value
Twoje problemy są związane z działaniem funkcji scanf
, która zwyczajnie czyta do pierwszej spacji.
super dzieki za rady ;)
jeszcze jedna rzecz: funkcja strlen któa zlicz znaki by był statni wyraz musze odjąć aż 2 a w def funkcji pisze ze już \0 nie zlicza ..
fgets(tekst,100,stdin);
n=strlen(t)-2
i dopiero dla takiego n to jest ostatnia litera wyrazu