Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Différence entre 2 chaines de caractères

2 réponses
Avatar
Patrick
Bonjour,

Quelle est la différence entre "e" et 'e' ?

Cette question parce que certaines fonctions ont besoin qu'on leur
transmette la chaine de caractères entre apostrophes.

Et comment fait-on pour stocker la valeur 'e' dans une variable sans
qu'après elle soit prise en compte comme étant "'e'" (e entre apostrophes et
entre guillemets) ?

Merci.

--
Patrick

2 réponses

Avatar
Jean-Michel Berthier
Bonjour,

char c = 'e'; // caractère e
string s = "e"; // chaîne de caractère contenant un seul caractère
strins s2 = "'e'"; // chaîne de 3 caractères

Toutes les chaînes de caractères littérales sont entre guillemets - c'est
d'ailleurs à ça qu'on les reconnaît ;-)

Et jeter un oeil rapide sur la doc pour avoir un minimum de bases sur la
syntaxe, cela peut servir.



"Patrick" a écrit dans le message de
news:
Bonjour,

Quelle est la différence entre "e" et 'e' ?

Cette question parce que certaines fonctions ont besoin qu'on leur
transmette la chaine de caractères entre apostrophes.

Et comment fait-on pour stocker la valeur 'e' dans une variable sans
qu'après elle soit prise en compte comme étant "'e'" (e entre apostrophes
et
entre guillemets) ?

Merci.

--
Patrick


Avatar
Patrick Philippot
Bonjour,

Patrick wrote:
Quelle est la différence entre "e" et 'e' ?



Une différence fondamentale. "e" représente une chaîne de caractères (type
String) et 'e' représente un caractère (type char). Ce sont deux classes
complètement différentes.

Par ailleurs String est un type référence alors que char est un type valeur,
ce qui constitue également une différence fondamentale: une String n'est
jamais allouée sur la pile car ce n'est pas un type valeur (même si le fait
que l'on n'utilise pas explicitement l'opérateur new pour les construire
peut donner l'illusion que ce sont des types primitifs - ce n'est pas le cas
et le new est implicite).

Une String est "immutable": une fois le contenu de la chaîne défini, il ne
peut plus jamais changer sauf à construire de manière explicite ou implicite
une nouvelle String qui va recevoir la chaîne modifiée. Une variable de type
Char peut changer à n'importe quel moment.

Vous avez donc affaire à 2 types différents, ayant des comportements
différents et un jeu de méthodes différent.

Il n'y a pas de confusion entre Char et String. Vous ne pouvez pas écrire

String s = 'abcd';

Cette question parce que certaines fonctions ont besoin qu'on leur
transmette la chaine de caractères entre apostrophes.



Certaines méthodes demandent un Char en argument et d'autres une String.
Encore une fois, ce sont 2 types différents. Une String constituée d'un seul
Char n'est pas un Char.

Et comment fait-on pour stocker la valeur 'e' dans une variable sans
qu'après elle soit prise en compte comme étant "'e'" (e entre
apostrophes et entre guillemets) ?



Je ne comprends pas bien la question. S'il s'agit de récupérer dans une
variable de type Char, le caractère qui constitue le seul élément d'une
String, il suffit d'utiliser NomChaine[0], un indexeur étant défini pour la
classe String.

Cordialement.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr