[C/ char] Ajouter un '\O' sans effet?
mélanie
-
cataclypse -
cataclypse -
Bonjour,
je pensais qu'on ajoutant n'importe ou dans une chaine un `\0', lors de l'affichage il s'arreterai au 1er '\0'.
Car j'ai lu " En C, les chaînes de caractères n'existent pas, il s'agit de tableaux de caractères terminés par un caractère nul (\0)".
or
voici mon exemple:
la je mattendais a voir s'afficher:
"je"
vu que juste apres il ya inséré \0
et non:
"je0suis la"
merci d'avance!
je pensais qu'on ajoutant n'importe ou dans une chaine un `\0', lors de l'affichage il s'arreterai au 1er '\0'.
Car j'ai lu " En C, les chaînes de caractères n'existent pas, il s'agit de tableaux de caractères terminés par un caractère nul (\0)".
or
voici mon exemple:
#include <stdio.h>
int main(int argc, char *argv[])
{
char msg[20]="je suis la";
msg[2]='\0';
printf("%s",msg);
getchar();getchar();
return 0;
}
la je mattendais a voir s'afficher:
"je"
vu que juste apres il ya inséré \0
et non:
"je0suis la"
merci d'avance!
A voir également:
- [C/ char] Ajouter un '\O' sans effet?
- O&o shutup10 - Télécharger - Confidentialité
- O&o defrag - Télécharger - Optimisation
- Effet miroir word - Guide
- Que veut dire o - Forum Mail
- Smiley \o/ ✓ - Forum Mail
7 réponses
\0 (avec un zéro) c'est le caractère de fin de chaine.
Il est donc normal qu'il s'arrête à "Je".
Il faut que tu mettes :
Si tu veux écrire "Je\0uis là" :
Bonne chance
Il est donc normal qu'il s'arrête à "Je".
Il faut que tu mettes :
msg[2]='0'
Si tu veux écrire "Je\0uis là" :
msg[2]='\\' msg[3]='0'
Bonne chance
tu ne mas pas compris
mamiemando
il naffiche pas je
mais je0suis la
je sais à quoi sert le \0 cest pourquoi je lai utilisé ici.
le \0 est quivalent a 0.
cela pose tjrs probleme.
mamiemando
il naffiche pas je
mais je0suis la
je sais à quoi sert le \0 cest pourquoi je lai utilisé ici.
le \0 est quivalent a 0.
cela pose tjrs probleme.
peut etre n'ai je pas été clair excusez moi.
Si j'a fait
msg[2]='\0' c'est volontairement dans le but que ne s'affiche que la chaine
"je"
et non pas
"je0suis la".
Si j'a fait
msg[2]='\0' c'est volontairement dans le but que ne s'affiche que la chaine
"je"
et non pas
"je0suis la".
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Salut
Sous linux, ton programme affiche bien je
Est-ce le seul bout de code utilisé ou as-tu concaténé plusieurs morceaux en affilée?
Sous linux, ton programme affiche bien je
Est-ce le seul bout de code utilisé ou as-tu concaténé plusieurs morceaux en affilée?
Ah lol parce que sous windows ça marche pas le \0 ? Excuse moi c'est pour ça que je n'avais pas compris mélanie. Ca me semble bizarre ça voudrait dire que le caratère de fin de chaîne serait autre ???
Tu es bien sûre d'avoir mis un \0 (backslash zero) ? Juste pour être surs tu peux tester ce code ?
Bonne chance
Tu es bien sûre d'avoir mis un \0 (backslash zero) ? Juste pour être surs tu peux tester ce code ?
#include <stdio.h>
#include <stdlib.h>
int main(){
char buf[255]="plop plop";
buf[4]='\0';
printf("%s\n",buf);
return 0;
}
Bonne chance