Caractère " (double quote) en C
Résolu
mano9
Messages postés
28
Date d'inscription
Statut
Membre
Dernière intervention
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je suis en train de faire un travail dans lequel j'ai besoin d'affecter la double côte( " ) à une variable de type chaine(C'est le seul chemin pour faire ce que je veux).Mais depuis 2 jours, j'ai tout tenté en vain.En fait voilà:
char machaine[5];
machaine = "SC CREATE " ";
Toujours des erreurs je ne sais donc pas comment utiliser " comme caractère.
Aidez moi SVP mon projet ç'est pour demain et il ne me reste que ça à débloquer pour le terminer.
Très cordialement
Je suis en train de faire un travail dans lequel j'ai besoin d'affecter la double côte( " ) à une variable de type chaine(C'est le seul chemin pour faire ce que je veux).Mais depuis 2 jours, j'ai tout tenté en vain.En fait voilà:
char machaine[5];
machaine = "SC CREATE " ";
Toujours des erreurs je ne sais donc pas comment utiliser " comme caractère.
Aidez moi SVP mon projet ç'est pour demain et il ne me reste que ça à débloquer pour le terminer.
Très cordialement
A voir également:
- Double cote
- Double ecran - Guide
- Whatsapp double sim - Guide
- Double driver - Télécharger - Pilotes & Matériel
- Double appel - Guide
- Double boot - Guide
4 réponses
Salut,
Trois erreurs dans ton code.
1/ La taille de ta chaîne est trop petite pour contenir "SC CREATE". (10 caractères minimum, tu peux en mettre plus pour être tranquille).
2/ machaine = "SC CREATE " "; Interdit de faire ça. Tu dois utiliser la fonction strncpy pour réaliser la copie de la chaîne. Par exemple :
3/Pas de guillemets dans la chaîne. Ou alors il faut l'échapper avec un backslash. Par exemple : "SC CREATE\" "
Cdlt
Trois erreurs dans ton code.
1/ La taille de ta chaîne est trop petite pour contenir "SC CREATE". (10 caractères minimum, tu peux en mettre plus pour être tranquille).
2/ machaine = "SC CREATE " "; Interdit de faire ça. Tu dois utiliser la fonction strncpy pour réaliser la copie de la chaîne. Par exemple :
strncpy(machaine,"SC CREATE",sizeof machaine); machaine[sizeof machaine - 1]='\0'; //pour placer le \0 final.
3/Pas de guillemets dans la chaîne. Ou alors il faut l'échapper avec un backslash. Par exemple : "SC CREATE\" "
Cdlt
Merci déjà pour la réponse.
1 Pour la taille ç'est bon je n'ai pas fait cette erreur
2 Dans mon "sc create " ", j'ai justement besoin de mettre la double cote( L'avant dernière) comme caractère
dans la chaine.
3je ne veux pas mettre " ", mais plutôt "
SVP j'attends votre réponse
1 Pour la taille ç'est bon je n'ai pas fait cette erreur
2 Dans mon "sc create " ", j'ai justement besoin de mettre la double cote( L'avant dernière) comme caractère
dans la chaine.
3je ne veux pas mettre " ", mais plutôt "
SVP j'attends votre réponse
1 Pour la taille ç'est bon je n'ai pas fait cette erreur
Pourtant l'exemple que tu as donné contient cette erreur.
2 Dans mon "sc create " ", j'ai justement besoin de mettre la double cote( L'avant dernière) comme caractère dans la chaine.
Oui, ça j'ai bien compris, et c'est pour ça que je te dis qu'il faut l'échapper avec un backslash sinon cela ne marchera pas. Relis mon exemple du post 1 pour savoir comment faire.
3je ne veux pas mettre " ", mais plutôt "
En C, la chaîne est délimitée par deux apostrophes. Mais ces apostrophes ne font pas parties en eux-même de la chaîne. C'est juste pour aider le compilateur à comprendre de quoi il traite.
Pourtant l'exemple que tu as donné contient cette erreur.
2 Dans mon "sc create " ", j'ai justement besoin de mettre la double cote( L'avant dernière) comme caractère dans la chaine.
Oui, ça j'ai bien compris, et c'est pour ça que je te dis qu'il faut l'échapper avec un backslash sinon cela ne marchera pas. Relis mon exemple du post 1 pour savoir comment faire.
3je ne veux pas mettre " ", mais plutôt "
En C, la chaîne est délimitée par deux apostrophes. Mais ces apostrophes ne font pas parties en eux-même de la chaîne. C'est juste pour aider le compilateur à comprendre de quoi il traite.
salut
je tenais juste à préciser que ton double côte est en fait "double quote"
quote est "guillemets" dans la langue de shakespeare (d'où la citation = quotation)
le double est apparu dans les salles d'enseignement (anglophones) de l'informatique où il a bien fallu faire comprendre la différence (en programmation) entre apostrophe et guillemets en mettant l'accent sur le nombre d'apostrophes à dessiner (single ou double).
Je rappelle que le public de ces cours (toutes langues confondues) n'est généralement pas versé dans la connaissance de la langue ni de sa formalisation (d'où l'utilisation de vocabulaire simplifié voire rudimentaire pour leur expliquer quelque chose ainsi que leur difficulté à formuler par écrit une description d'un fonctionnement ou d'un problème dans un langage compréhensible par leurs pairs)
je tenais juste à préciser que ton double côte est en fait "double quote"
quote est "guillemets" dans la langue de shakespeare (d'où la citation = quotation)
le double est apparu dans les salles d'enseignement (anglophones) de l'informatique où il a bien fallu faire comprendre la différence (en programmation) entre apostrophe et guillemets en mettant l'accent sur le nombre d'apostrophes à dessiner (single ou double).
Je rappelle que le public de ces cours (toutes langues confondues) n'est généralement pas versé dans la connaissance de la langue ni de sa formalisation (d'où l'utilisation de vocabulaire simplifié voire rudimentaire pour leur expliquer quelque chose ainsi que leur difficulté à formuler par écrit une description d'un fonctionnement ou d'un problème dans un langage compréhensible par leurs pairs)
Je me permet cette petite correction sur la fonction strncpy() :
> Copie au maximum longueur caractères de source dans cible en complétant par des caractères de code nul si taille cible > taille source.
Sinon dans son cas il peut simplement utiliser vieille fonction strcpy().
Bonne journée.
Sinon dans son cas il peut simplement utiliser vieille fonction strcpy().
Oui, mais attention au buffer overflow.
Je me permets cette petite correction sur la fonction strncpy() :
char *strncpy(char *cible, const char *source, size_t longueur)
> Copie au maximum longueur caractères de source dans cible en complétant par des caractères de code nul si taille cible > taille source.
Non, la bonne réponse est:
Copie au maximum longueur caractères de source dans cible en complétant par des caractères de code nul si longueur > taille source.
Bonne journée.
Je dirais oui "à priori" - faudrait que l'on compare nos sources comme justifications.
Crdlt.
strncpy(machaine,"SC CREATE",sizeof (machaine));
Non non comme ça, ça semble OK (:>).
Crldt.