Salut.
J'ai une fonction init (int n, char *nom) qui prend comme parametre un char *nom et j'ai besoin de savoir la taille de ma chaine
mais quand j'utilise strlen (char) le code ne s'execute pas !!
Salut.
J'ai une fonction init (int n, char *nom) qui prend comme parametre un char *nom et j'ai besoin de savoir la taille de ma chaine
mais quand j'utilise strlen (char) le code ne s'execute pas !!
Salut,
Ça ne veut pas dire grand chose. Erreur de segmentation ? Mauvaise valeur de retour ?le code ne s'execute pas
Il faut que tu saches que strlen fonctionne avec une chaine char* qui est terminée pas le caractère '\0'. Par conséquent il faut que cette chaine soit terminée par ce caractère.
La deuxième solution c'est d'utiliser les chaines de caractère en maintenant une variable "taille" toujours à jour.
Je me permet juste d'ajouter que la meilleure solution (si c'est possible) est d'utiliser un objet std::string à la place de la chaîne de caractère.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 init(const std::string& nom) //Si ta fonction ne fais que lire le contenu de nom. init (std::string& nom) //Si nom dois être modifié par ta fonction.
Bonjour,
Il faudrait qu'on voie un peu plus ton code (l'appel à la fonction, le contenu de la fonction, ...).
Selon l'utilisation que tu va faire de ta chaîne de caractère il peut en effet être intéressant d'utiliser un std::string.
Sinon on n'utilise pas strlen(char) mais sizeof(char) pour connaitre la taille d'un char (ou strlen(char *) pour connaitre la taille d'une chaîne de caractère comme l'a dit Trademark) qui renverra la taille en octet d'un char soit 1.
Je suppose que n est la taille de ta chaîne de caractère et que tu voulais faire :
int tailleEnOctet = n * sizeof(char) ?
Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.
Partager