Caractère " (double quote) en C

Résolu/Fermé
mano9 Messages postés 28 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 11 mai 2010 - 17 avril 2009 à 21:14
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 19 avril 2009 à 18:05
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

4 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
17 avril 2009 à 21:30
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 :
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
1
KéKeCest ??
19 avril 2009 à 10:13
Slt fiddy,

Je me permet 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.

Sinon dans son cas il peut simplement utiliser vieille fonction strcpy().

Bonne journée.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835 > KéKeCest ??
19 avril 2009 à 12:32
Je ne comprends pas pourquoi tu me reprends ? Qu'est-ce qu'il ne t'a pas plu dans mon code ?

Sinon dans son cas il peut simplement utiliser vieille fonction strcpy().
Oui, mais attention au buffer overflow.
0