Les guillemets, apostrophes et les chaînes

Décembre 2016


Comment jouer avec les guillemets et les apostrophes dans les chaînes



1. Préambule


Vous vous posez parfois la question : "Pourquoi sans jouer avec les guillemets et apostrophes, ça coupe une chaîne?".
C'est simple, dans tous les langages de programmation, vous devez ouvrir et fermer votre chaîne avec des guillemets. Faites-le tout le temps, de préférence, mais vous n'êtes pas obligé(e), si votre interpréteur comprend sans les guillemets, dans le cas d'une chaîne ne contenant pas d'espace.
Pourquoi les espaces ?
Parce que très souvent ça veut dire qu'on passe à autre chose, une autre fonction, etc ...

2. Comment ajouter un guillement sans couper la chaine ?


Si votre message est coupé ou que vous recevez une erreur après avoir ajouté des guillemets / un apostrophe mais que devez en rajouter dans la chaine.

2.1 En PHP / HTML


Le langage PHP est le plus simple à utiliser à ce niveau.
Vous pouvez délimiter votre chaine de caractères avec les guillemets et les apostrophes.
Une technique simple pour éviter les erreurs est de compter le nombre de guillemets ou d'apostrophes ; Si c'est impair, alors c'est faux.

Par exemple :
$machaine = "Bonjour,";


Et dans le cas où il vous faut ajouter des guillemets, on écrira :

$machaine = 'Bonjour "Bernard",';
(Changer le caractère qui délimite votre chaine)
Ou encore :
$machaine = "Bonjour \"Bernard\",";
(Utiliser l'anti-slash -> Caractère d'échappement)

Et on évitera :

$machaine = "Bo"njour,";
(Nombre de guillemets impair) puisque PHP va s'arrêter au 2ème guillement et attendra ensuite l'ordre de fin d'instruction (Le point virgule), or il trouvera à la place la lettre n qui se trouvera hors de la chaine, qui ne signifie donc plus rien pour lui et il va générer une erreur.

Autre exemple BEAUCOUP plus fréquent ; Le mélange PHP / HTML :

echo '<iframe src="http://www.monsite.ty/moncode.html" height="500px" width="96%" style="align: center;"></iframe>';


Ou encore :

echo "<iframe src=\"http://www.monsite.ty/moncode.html\" height=\"500px\" width=\"96%\" style=\"align: center;\"></iframe>";


C'est le même genre de chose auquel il va falloir faire attention lorsque vous souhaiterez que PHP ajoute une chaine de caractère comprenant des guillemets à l'intérieur dans une base de données.

2.2 En C


Il faut savoir qu'en C (Et ses dérivés), délimiter une chaine de caractère avec des apostrophes signifie en fait déclarer un seul caractère.
La seule solution sera donc l'utilisation du caractère d'échappement :

const char * machaine = "Bonjour \"Bernard\",";


Et on utilise les apostrophes SEULEMENT pour déclarer UNE SEUL LETTRE, c'est à dire :

char un_caractere = 'B';

2.3 En VisualBasic et l'ASCII


On va changer un peu ... prenons du visual basic :
Dim exemple as String  
exemple = "Je m' appelle : " & chr$(34) & "Zeurtchreinshrentizer" & chr$(34)

Donc là on utilise le code ASCII 34 : Le guillemet, qui sera interpreté ensuite.
Testez avec ça :
Dim exemple as String  
exemple = "Je m' appelle : " & chr$(34) & "Zeurtchreinshrentizer" & chr$(34)  
MsgBox exemple

J'ai donc fermé la chaîne pour implémenter le chr$().
Vous pouvez utiliser n'importe quels codes ASCII avec chr$().

A voir également :

Ce document intitulé «  Les guillemets, apostrophes et les chaînes  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.