strlen funkcje

0

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

1

@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;
}

http://ideone.com/wfbOYz

0

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);
}
3

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.

0

super dzieki za rady ;)

0

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

1
  1. Tablice są indeksowane od zera.
  2. Ostatni znak stringa wczytanego przez fgets to znak końca linii.

1 użytkowników online, w tym zalogowanych: 0, gości: 1