fonction manipulant les chaines de caractères - C - Programmation
Marsh Posté le 03-01-2014 à 15:44:08
Citation : char CHAINE[]="Bonjour!"; |
Ne serait-ce pas printf("Saisissez votRe chaine" ); ?
D'accord je sors
Marsh Posté le 03-01-2014 à 16:56:08
|
chaine est déclaré nul part. Attention, le C est sensible aux majuscules et aux minuscules, et chaine est donc différent de CHAINE.
Ensuite, si chaine était déclarée par char chaine[] = "Bonjour !"; (en français, on a l'habitude de mettre un espace avant un point d'interrogation et de part et d'autre du signe égal),
alors chaine est un pointeur sur la zone "Bonjour !", et c'est donc déjà une adresse. Il est superflu de mettre l'esperluette (& ) dans le scanf() pour ce cas.
char phrase[]=""; |
La première ligne est utilisée par le compilateur, pour créer un pointeur nommé phrase qui pointe en mémoire sur une zone qui contient "", autrement dit qui contient seulement un octet qui est le zéro binaire de fin de chaine.
La deuxième ligne essaye de faire pointer phrase sur une autre zone mémoire contenant le libellé "chaine".
Ce n'est pas logique. Soit on utilise ceci , sans réservé d'espace:
char *phrase; |
Soit (et c'est mieux) on utilise cela, en réservant de l'espace :
char phrase[20]; |
De toutes manières, c'est bizarre.
J'ai l'impression qu'il est plutôt demandé de faire ça :
char phrase[20]; |
Marsh Posté le 03-01-2014 à 17:36:41
billgatesanonym a écrit :
|
merci .
mais dans l'exercice il dit Déclarer une chaine de caractère PHRASE sans déterminer sa taille et faire le suivant
a)Demander à l’utilisateur de saisir une chaine et l’affecte à PHRASE.
comment je fait ça ?
merci
Marsh Posté le 03-01-2014 à 19:01:19
Citation : Déclarer une chaine de caractère PHRASE sans déterminer sa taille |
Donc il faut faire
char *PHRASE;
et pour le reste, man getline.
A+,
Marsh Posté le 03-01-2014 à 19:09:09
gilou a écrit :
Donc il faut faire |
merci ^^ .
mais nous avons fait ce TP avant d'etudier les pointeur .
pour cela j'ai fait pas les pointeur.
il n ya pas d'autre methode ?
Marsh Posté le 03-01-2014 à 23:38:11
Non.
En C, un tableau a besoin de connaître sa taille à sa déclaration.
Si on en connait pas la taille, on déclare un pointeur, qui prendra comme valeur, l'adresse de la chaîne quand celle-ci aura été allouée.
A+,
Marsh Posté le 03-01-2014 à 15:26:00
bonjour !
j'ai des probleme sur les fonction de chainne de caractére j'ai fait l'exercice de TP suivant mais ne compile pas :
1.Déclarer une chaine de caractère PHRASE sans déterminer sa taille et faire le suivant :
a)Demander à l’utilisateur de saisir une chaine et l’affecte à PHRASE.
b)Affiche la taille de la chaine que l’utilisateur a saisit.
c)Déclarer une autre chaine constante CHAINE qui contient le mot suivant < Bonjour ! >, puis copier le contenu de cette chaine dans la première chaine PHRASE, et afficher les deux.
d)Modifier (c) en copiant juste les 3 premiers caractères dans PHRASE, et afficher 2 chaines.
e)Demander à l’utilisateur de saisir un nom, puis affecter le à PHRASE, et afficher la concaténation de CHAINE et PHRASE.
f)Comparer CHAINE et PHRASE à l’aide de la fonction de comparaison.
merci de m'indiquer l'erreur .