[C] Ecrire un caractère dans une chaine

calaceite Messages postés 159 Statut Membre -  
calaceite Messages postés 159 Statut Membre -
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 5936 Statut Contributeur 215
 
Salut ,
tu trouvera sans doute ton bonheur la:
http://www.commentcamarche.net/c/cpoint.php3
1
kilian Messages postés 8854 Statut Modérateur 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 Statut Membre 10
 
Merci Kilian
0
wiwimagique Messages postés 481 Statut Membre 108
 
essaie

mot[3] = 'g';
-1