Declaration une chaine de caracter en langage C
Fermé
lotfi de
Messages postés
82
Date d'inscription
dimanche 4 novembre 2012
Statut
Membre
Dernière intervention
6 mai 2013
-
16 nov. 2012 à 14:27
Utilisateur anonyme - 3 déc. 2012 à 08:41
Utilisateur anonyme - 3 déc. 2012 à 08:41
A voir également:
- Declaration d'un caractere en c
- Déclaration de revenus - Guide
- Caractère ascii - Guide
- Caractere speciaux - Guide
- Caractères spéciaux : comment taper des |—[©\½→}… - Guide
- Caractere speciaux mac - Guide
5 réponses
Utilisateur anonyme
16 nov. 2012 à 15:10
16 nov. 2012 à 15:10
Bonjour
Il n'existe pas de chaînes de caractères à proprement parler en C. Il existe des tableaux de caractères qui se déclarent avec la même syntaxe que les autres types de tableaux :
Il n'existe pas de chaînes de caractères à proprement parler en C. Il existe des tableaux de caractères qui se déclarent avec la même syntaxe que les autres types de tableaux :
char nom_du_tableau [nb_elements];
antoinemakan
Messages postés
3
Date d'inscription
jeudi 15 novembre 2012
Statut
Membre
Dernière intervention
16 novembre 2012
16 nov. 2012 à 14:45
16 nov. 2012 à 14:45
bjour,
pour le chaine de caractère c'est
char nom;(par exemple);
pour le chaine de caractère c'est
char nom;(par exemple);
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
16 nov. 2012 à 16:27
16 nov. 2012 à 16:27
Perdu, ça c'est un caractère simple... Une chaîne, c'est un tableau de char. Donc char nom[NB];
lotfi de
Messages postés
82
Date d'inscription
dimanche 4 novembre 2012
Statut
Membre
Dernière intervention
6 mai 2013
16 nov. 2012 à 15:54
16 nov. 2012 à 15:54
par exemple pour variable nom est ce que possible d utiliser type char pour recoit le variable nom un nom par exemple "mohamad"
Je ne suis pas sûr de comprendre la question. Si tu veux demander si tu as le droit d'appeler une variable mohamad, c'est oui. par exemple :
Et même :
char mohamad[10];Si c'et pour déclarer une variable et l'initialiser aec le mot "mohamad", tu peux faire :
char ma_variable[]="mohamad";qui définit un tableau de 8 caractères ( 7 lettres plus un caractère nul pour marquer la fin)
Et même :
char mohamad[]="mohamad";
armasousou
Messages postés
1267
Date d'inscription
dimanche 16 août 2009
Statut
Membre
Dernière intervention
30 décembre 2016
83
16 nov. 2012 à 23:17
16 nov. 2012 à 23:17
strcpy pour copier une chaine 1 vers une chaine 2.
Et char* chaine = (char*) malloc(x*sizeof(char));
Pour une chaine de x caracteres dont tu ne connais pas la taille à l'allocation.
OUBLIEZ PAS LE FREE :)
Et char* chaine = (char*) malloc(x*sizeof(char));
Pour une chaine de x caracteres dont tu ne connais pas la taille à l'allocation.
OUBLIEZ PAS LE FREE :)
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
16 nov. 2012 à 23:33
16 nov. 2012 à 23:33
Ou mieux, strncpy() qui permet une gestion de la longueur.
Et char *chaine=malloc(x); suffit également.
sizeof(char) fait 1 systématiquement. Et le cast est superflu.
Et char *chaine=malloc(x); suffit également.
sizeof(char) fait 1 systématiquement. Et le cast est superflu.
armasousou
Messages postés
1267
Date d'inscription
dimanche 16 août 2009
Statut
Membre
Dernière intervention
30 décembre 2016
83
16 nov. 2012 à 23:40
16 nov. 2012 à 23:40
Le cast est superflu mais permet, d'une part, de se rendre compte de ce qu'on fait, et est beaucoup plus "propre" que le faire naturellement. Pour le "sizeof(char)" je suis d'accord.
Ps: c'est comme la direction vers NULL d'un pointeur sur structure lors de la libération ... pourquoi faire ? bah pour la propreté, c'est une habitude à prendre.
Ps: c'est comme la direction vers NULL d'un pointeur sur structure lors de la libération ... pourquoi faire ? bah pour la propreté, c'est une habitude à prendre.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
16 nov. 2012 à 23:49
16 nov. 2012 à 23:49
Le cast est superflu mais permet, d'une part, de se rendre compte de ce qu'on fait, et est beaucoup plus "propre" que le faire naturellement.
Pas vraiment... Historiquement le cast sur les malloc était fait en ANSI lorsque le type void* n'existait pas. Depuis que le void* existe, il est inutile de caster et est même déconseillé. Certains compilateurs masqueraient en effet la non inclusion de l'entête malloc.h...
c'est comme la direction vers NULL d'un pointeur sur structure lors de la libération ... pourquoi faire ? bah pour la propreté, c'est une habitude à prendre.
Là c'est différent. Effectivement, c'est une bonne habitude de prendre. Et pour plusieurs raisons.
Pas vraiment... Historiquement le cast sur les malloc était fait en ANSI lorsque le type void* n'existait pas. Depuis que le void* existe, il est inutile de caster et est même déconseillé. Certains compilateurs masqueraient en effet la non inclusion de l'entête malloc.h...
c'est comme la direction vers NULL d'un pointeur sur structure lors de la libération ... pourquoi faire ? bah pour la propreté, c'est une habitude à prendre.
Là c'est différent. Effectivement, c'est une bonne habitude de prendre. Et pour plusieurs raisons.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lotfi de
Messages postés
82
Date d'inscription
dimanche 4 novembre 2012
Statut
Membre
Dernière intervention
6 mai 2013
18 nov. 2012 à 15:41
18 nov. 2012 à 15:41
moi je souhaite de declarer une chaine de caracter qui recoit cette msg la "bonjour appele mois svp " ce sa mon objectif et merci :))
3 déc. 2012 à 00:57
3 déc. 2012 à 08:41
Les chaînes de caractères n'existent pas en C, donc tu ne peux pas en déclarer une. Le tableau de char est le moyen habituel pour faire la même chose.
Je crois qu'en C++, il existe un type String, mais je ne connais pas assez le C++ pour en dire davantage.