Previous Up Next
Version pdf - Version archive

1.6  Chaînes de caractères

1.6.1  Exemple

Etant donné le programme dont l’exécution est tracée ci dessous :

Saisissez une phrase :
Les framboises sont perchees sur le tabouret de mon grand-pere.
Vous avez saisi :
Les framboises sont perchees sur le tabouret de mon grand-pere.
Cette phrase commence par une majuscule.
Cette phrase se termine par un point.

Pourriez-vous mettre au point un tel programme ?

1.6.2  Définition

Une chaîne de caractères est une suite de char (caractères UNICODE). Le type utilisé pour déclarer une chaîne de caractères est string.

1.6.3  Déclaration et initialisation

Une chaîne se déclare de la sorte :

string <nom_chaine> = "valeur initiale";

Par exemple, on déclare une chaine c contenant "nabucodonosor" de la sorte :

string c = "nabuchodonosor";

1.6.4  Opérations

Concaténation

La concaténation de deux chaînes est la juxtaposition des caractères qui les composent. L’opérateur utilisé pour ce faire est +.

Par exemple :

string a = "nabucho"; string b = "donosor"; string c = a + b;

Longueur

La longueur d’une chaîne s (i.e. le nombre de caractères qu’elle contient d’obtient avec l’attribut .Length. Par exemple,

Console.WriteLine("La longueur de " + s + " est " + s.Length + ".");

Extraction de caractères

On extrait le i-ème caractère d’une chaîne s avec l’instruction s[i] (attention les caractères sont indicés à partir de 0). Par exemple,

string s = "nabuchodonosor"; char c = s[1]; Console.WriteLine("Le deuxième caractère de " + s + " est " + c + ".");

Nous sommes maintenant en mesure de coder l’exemple donné au début du cours :

using System; namespace exempleCours { class MainClass { public static void Main (string[] args) { Console.WriteLine("Saisissez une phrase :"); string s = Console.ReadLine(); int n = s.Length; Console.Write("Cette phrase "); if (s[0] >= 'A' && s[0] <= 'Z') Console.Write("commence"); else Console.Write("ne commence pas"); Console.WriteLine(" par une majuscule."); Console.Write("Cette phrase "); if (s[n - 1] == '.') Console.Write("se termine"); else Console.Write("ne se termine pas"); Console.WriteLine(" par un point."); } } }

Télécharger le fichier

Extraction de sous-chaînes

On extrait de s une sous-chaîne de j caractères à partir du caractère d’indice i en utilisant s.Substring(ij). Par exemple,

string s = "nabuchodonosor"; string s2 = s.Substring(4, 7);

s2 contient alors chodono.

1.6.5  Chaînes modifiables

Le problème se posant avec les chaînes en c# est qu’elle ne sont pas modifiables. Le type StringBuilder permet de créer des chaînes modifiables.

Pour utilisez des StringBuilder, vous devez ajouter using System.Text; au début de votre code source.

Déclaration

La syntaxe permettant de créer une chaîne vide est

StringBuilder s = new StringBuilder(n);

n est le nombre maximal de caractères que pourra contenir la chaîne.

Vous avez aussi la possibilité de recopier une string dans une StringBuilder en procédant de la sorte :

StringBuilder sb = new StringBuilder(s);

Insertion

Vous pouvez insérer un caractère dans une StringBuilder s en utilisant l’instruction s.Insert(ia). Les caractères se trouvant après l’indice i dans s sont décalés d’une position vers la droite et a est placé à l’indice i.

Modification

Vous pouvez remplacer le caractère d’indice i dans s par a avec l’instruction s[i] = a. Il faut bien entendu qu’il y ait déjà un caractère à cet indice dans s, sinon le programme plante...

Conversions

Pour effectuer des conversions entre string et StringBuilder, inutile d’effectuer des casts, ça ne fonctionnera pas.


Previous Up Next