[C] Ecrire un caractère dans une chaine
calaceite
Messages postés
161
Date d'inscription
Statut
Membre
-
calaceite Messages postés 161 Date d'inscription Statut Membre -
calaceite Messages postés 161 Date d'inscription 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
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
3 réponses
-
-
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"
-