Aide pour strlen en c
dacosta
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
haydens Messages postés 81 Date d'inscription Statut Membre Dernière intervention -
haydens Messages postés 81 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j voudrais savoir a koi ca sert strlen en c et comment en l'utiliser.si possible pourrez vous faire 1programme avc strlen pour que je puisse mieux comprendre
j voudrais savoir a koi ca sert strlen en c et comment en l'utiliser.si possible pourrez vous faire 1programme avc strlen pour que je puisse mieux comprendre
A voir également:
- Ft strlen
- Fujionkyo ft-600 hd mode d'emploi ✓ - Forum TNT / Satellite / Réception
- Enregistrer avec FUJIONKYO FT-600HD - Forum Téléviseurs
- Problème avec strlen et php ! ✓ - Forum PHP
- Java ft - Télécharger - Jeux vidéo
- Coco ft - Accueil - Réseaux sociaux
7 réponses
strlen retourne le nombre de caractères dans une chaine de caractère char*, en les comptants jusqu'au zéro terminal, mais sans compter celui-ci dans le total.
affiche 11, car strlen retourne 11
#include <stdio.h> #include <string.h> int main(void) { char *string = "Hello World"; printf("%lu\n", (unsigned long)strlen(string)); return 0; }
affiche 11, car strlen retourne 11
Salut,
si tu veux gagner du temps, sache que GOOGLE est un bien meilleur allié que les forums pour ta connaissance des fonctions !
strlen te renvoi simplement la taille d'une chaine de caractère.
Petit exemple :
char mystr[100]="test string";
i = strlen(mystr); // i vaudra 11, car même l'espace compte pour un caractère.
C'est utile pour faire des manipulations sur les chaines de caractères.
A++, Greg.
si tu veux gagner du temps, sache que GOOGLE est un bien meilleur allié que les forums pour ta connaissance des fonctions !
strlen te renvoi simplement la taille d'une chaine de caractère.
Petit exemple :
char mystr[100]="test string";
i = strlen(mystr); // i vaudra 11, car même l'espace compte pour un caractère.
C'est utile pour faire des manipulations sur les chaines de caractères.
A++, Greg.
bonjour,
//strlen()
//Syntaxe:
//#include <string.h>
//size_t strlen( char *str );
//Description:
//La fonction strlen() returne la longueur de la chaine de caracteres str (determinee par le nombre de caracteres //avant le caractere qui indique la fin de la chaine .ce caractere etant '\0'.
// EXEMPLE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char s1[] ;
int lg;
int main(int argc, char *argv[])
{
strcpy(s1,"abcde");
lg = strlen(s1);
printf("la longueur de la chaine s1 est %d :",lg);
system("PAUSE");
return 0;
}
//strlen()
//Syntaxe:
//#include <string.h>
//size_t strlen( char *str );
//Description:
//La fonction strlen() returne la longueur de la chaine de caracteres str (determinee par le nombre de caracteres //avant le caractere qui indique la fin de la chaine .ce caractere etant '\0'.
// EXEMPLE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char s1[] ;
int lg;
int main(int argc, char *argv[])
{
strcpy(s1,"abcde");
lg = strlen(s1);
printf("la longueur de la chaine s1 est %d :",lg);
system("PAUSE");
return 0;
}
il n`y a aucun warning lorsqu`on le compile su devc++ j`aimerai savoir sur quel compilateur
tu l`as compile ?
tu l`as compile ?
Peut-être que tu n'as pas généré tous les Warnings ;)
J'utilise gcc.
En tout cas, que ton programme donne Warning ou pas, ce n'est pas une bonne habitude.
De plus, ton résultat donne le résultat escompté, mais c'est une coïncidence. Rien ne te garantit le bon résultat.
En effet, tu utilises char s1[]; et ensuite strcpy. Tu n'as pas réalisé l'allocation.
J'utilise gcc.
En tout cas, que ton programme donne Warning ou pas, ce n'est pas une bonne habitude.
De plus, ton résultat donne le résultat escompté, mais c'est une coïncidence. Rien ne te garantit le bon résultat.
En effet, tu utilises char s1[]; et ensuite strcpy. Tu n'as pas réalisé l'allocation.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Fiddy a totalement raison, désolé de dire ça.
Mais enter le char s1[]; et les variables globales sur un programme de 10 lignes ça fait beaucoup.
Même si ça marche c'est pas une bonne habitude a avoir, les variables globales sont a éviter tout comme le "goto" est a bannir (j'exagere? oui sans doute un peu)
Mais enter le char s1[]; et les variables globales sur un programme de 10 lignes ça fait beaucoup.
Même si ça marche c'est pas une bonne habitude a avoir, les variables globales sont a éviter tout comme le "goto" est a bannir (j'exagere? oui sans doute un peu)
bonjour,
le programme a ete compile sur devc++ et donne le resultat escompte.
avant d`affirmer n`importe quoi il faudrait peut etre aller le tester et si ca ne marche pas
rapporter alors l`erreur .
on est ici pour s`entraider pas pour montrer se biceps...
salut.
le programme a ete compile sur devc++ et donne le resultat escompte.
avant d`affirmer n`importe quoi il faudrait peut etre aller le tester et si ca ne marche pas
rapporter alors l`erreur .
on est ici pour s`entraider pas pour montrer se biceps...
salut.
il n`y a pas de coincidence en informatique , seul un ignorant peut penser ca.
et je n`ai pas envie de polemiquer avec un ignorant.
et je n`ai pas envie de polemiquer avec un ignorant.
Tu me fais rire.
Vois-tu, ton programme pourrait être sujet à un buffer overflow vu que tu ne fais pas d'allocation. Mais tu as de la chance, tu travailles avec un compilateur intelligent. Sauf que c'est clairement pas une bonne idée. De plus utiliser strcpy, est une mauvaise idée. Vaut mieux utiliser strncpy.
Et puis, puisque tu mérites que je critique encore un peu plus ton code. Utiliser des variables globales, c'est pas une bonne habitude.
Effectivement "coïncidence" n'est pas le terme le mieux adapté. Mais, un programme peut marcher dans certain cas alors qu'il ne devrait pas grâce à un certain état de la pile (ce que j'entendais par coïncidence). Ici dans ton cas, tu as de la chance qu'un \0 termine ta chaîne mais rien ne te le garantit puisque tu n'as pas réalisé correctement l'allocation statique.
Prends exemple sur le code de D-Predator. Clair et concis.
Vois-tu, ton programme pourrait être sujet à un buffer overflow vu que tu ne fais pas d'allocation. Mais tu as de la chance, tu travailles avec un compilateur intelligent. Sauf que c'est clairement pas une bonne idée. De plus utiliser strcpy, est une mauvaise idée. Vaut mieux utiliser strncpy.
Et puis, puisque tu mérites que je critique encore un peu plus ton code. Utiliser des variables globales, c'est pas une bonne habitude.
Effectivement "coïncidence" n'est pas le terme le mieux adapté. Mais, un programme peut marcher dans certain cas alors qu'il ne devrait pas grâce à un certain état de la pile (ce que j'entendais par coïncidence). Ici dans ton cas, tu as de la chance qu'un \0 termine ta chaîne mais rien ne te le garantit puisque tu n'as pas réalisé correctement l'allocation statique.
Prends exemple sur le code de D-Predator. Clair et concis.