[C] Ecrire un caractère dans une chaine

calaceite Messages postés 159 Date d'inscription   Statut Membre Dernière intervention   -  
calaceite Messages postés 159 Date d'inscription   Statut Membre Dernière intervention   -
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 5931 Date d'inscription   Statut Contributeur Dernière intervention   215
 
Salut ,
tu trouvera sans doute ton bonheur la:
http://www.commentcamarche.net/c/cpoint.php3
1
kilian Messages postés 8732 Date d'inscription   Statut Modérateur Dernière intervention   1 526
 
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   Statut Membre Dernière intervention   10
 
Merci Kilian
0
wiwimagique Messages postés 481 Date d'inscription   Statut Membre Dernière intervention   108
 
essaie

mot[3] = 'g';
-1