[C] Ecrire un caractère dans une chaine

Fermé
calaceite Messages postés 159 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 23 avril 2007 - 6 oct. 2005 à 22:24
calaceite Messages postés 159 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 23 avril 2007 - 7 oct. 2005 à 21:23
Bonsoir,

Soit la chaîne déclarée par :
char *mot="lanrage";

La commande printf("%c",*(mot+3)); affiche le caractère 'r'. Pourtant si je veux changer ce 'r' en 'g', la commande suivante :

*(mot+3)='g';

ne marche pas. Pourquoi et comment faire ? Doit-on passer par strcpy ?


Merci.


Calaz
A voir également:

3 réponses

Canard007 Messages postés 5929 Date d'inscription mercredi 26 mai 2004 Statut Contributeur Dernière intervention 18 septembre 2009 215
7 oct. 2005 à 08:05
Salut ,
tu trouvera sans doute ton bonheur la:
http://www.commentcamarche.net/c/cpoint.php3
1
kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
7 oct. 2005 à 09:25
Tu trouveras une explication ici.
http://c.developpez.com/faq/c/?page=strings#STRINGS_string_init

En déclarant ainsi:
char *mot="lanrage";
tu fais pointer mot sur l'adresse du chaine de caractère constante.

Pour ce que tu veux faire tu devrais utiliser:
char mot[]="lanrage"
0
calaceite Messages postés 159 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 23 avril 2007 10
7 oct. 2005 à 21:23
Merci Kilian
0
wiwimagique Messages postés 481 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 20 avril 2006 108
7 oct. 2005 à 07:09
essaie

mot[3] = 'g';
-1