strings c with examples
Un regard approfondi sur les bases des chaînes en C ++.
Dans cette série C ++, jusqu'à présent, nous avons principalement discuté des tableaux numériques en C ++. Dans ce tutoriel, nous aborderons la manipulation avec des tableaux de caractères que nous appelons simplement «Strings».
Le tableau de caractères est principalement une chaîne de style C prise en charge par C ++. En plus des tableaux de caractères de style C, C ++ prend également en charge une classe de chaînes «std :: string». En outre, dans ce didacticiel, nous discuterons à la fois des types de chaînes ainsi que de la différence entre eux et de la programmation de chaque type en C ++.
=> Regardez la liste complète des didacticiels C ++ de cette série.
Ce que vous apprendrez:
Tableaux de caractères (chaînes de style C)
La chaîne de style c est un tableau de caractères terminé par un caractère nul « 0». Par conséquent, nous pouvons définir un tableau de type char et les dimensions ou la taille des tableaux, puis nous pouvons l'initialiser en une chaîne ou un tableau de caractères.
Notez que c'est le compilateur qui termine une chaîne avec un caractère nul, donc si nous initialisons le tableau de caractères avec une chaîne (entre guillemets doubles «»), nous devons laisser un espace supplémentaire pour le caractère nul lors de la déclaration de la taille d'un tableau .
Prenons quelques exemples de déclaration et d’initialisation de tableaux de caractères.
char firstStr() = 'This is Cstyle string'; char secStr(100) = {'s','o','f','t','w','a','r','e',' ','t','e','s','t','i','n','g',' ','h','e','l','p',' '}; char thirdStr() = {'h','e','l','l','o',' '};
Toutes les définitions ci-dessus sont des définitions de chaîne de style C valides en C ++. Notez que nous pouvons soit déclarer la taille réelle, soit laisser la taille vide afin que le compilateur puisse accepter la taille en fonction de la chaîne que nous avons initialisée.
Prenons un Exemple de lecture et d'écriture d'un tableau de caractères en C ++
Vous trouverez ci-dessous un programme simple qui lit la chaîne en utilisant cin et la produit en utilisant cout.
#include #include using namespace std; int main() { char firstStr(100); cin>>firstStr; cout<<'you entered : '< Sortie 1:
LogicielTestingHelp.com
vous avez entré: SoftwareTestingHelp.com
Sortie 2:
C'est une chaîne de style C
vous avez entré: Ce
Si nous comparons les deux résultats, nous voyons que lorsque nous avons entré la première chaîne «SoftwareTestingHelp.com», elle a été imprimée telle quelle.
Mais dans la deuxième sortie, bien que nous ayons entré la chaîne comme 'Ceci est une chaîne de style C', la sortie était seulement 'Ceci'.
La différence de sortie est due au fait que l'opérateur «>>» de cin utilisé pour lire la chaîne est traité comme la fonction «scanf» de C, qui ne lit que jusqu'à l'espace rencontré. Par conséquent, «cin with >>» convient pour lire des tableaux de caractères sans espace.
quelles sont les phases sdlc?
Par conséquent, alors que le deuxième espace de sortie a été rencontré, la fonction cin l'a pris comme la fin de la chaîne et n'a lu que le premier mot.
Afin de lire une ligne entière de caractères, y compris les espaces, C ++ utilise la fonction «get».
Un exemple de programme utilisant la fonction get est présenté ci-dessous:
#include #include using namespace std; int main() { char firstStr(100); cin.get(firstStr,100); cout<<'you entered : '< Production:
C'est softwareTestinghelp.com
tu es entré: C'est softwareTestinghelp.com
Comme le montre l'exemple , la fonction get de cin utilise deux arguments. Le premier argument est la variable de tableau de caractères dans laquelle la chaîne doit être lue tandis que le second argument est la taille maximale du tableau.
Les chaînes de style C prennent également en charge de nombreuses fonctions de chaîne qui permettent aux utilisateurs de manipuler les chaînes. Ces fonctions sont définies dans l'en-tête «cstring».
Nous présentons un tableau ci-dessous qui répertorie différentes fonctions de chaîne qui peuvent être utilisées pour manipuler des chaînes de style C.
Ne pas Fonction Arguments Description 1 strcpy s1, s2 Copie la chaîne s2 dans la chaîne s1 deux strcat s1, s2 Ajoute ou concatène la chaîne s2 à la fin de la chaîne s1 3 strlen s1 Renvoie la longueur de la chaîne s1 4 strcmp s1, s2 Renvoie 0: s1 et s2 sont identiques
<0:s1 > 0: s1> s2 5 strchr s1, ch Renvoie un pointeur sur la première occurrence du caractère ch dans la chaîne s1 et la chaîne à partir de là 6 strstr s1, s2 Renvoie la première occurrence de la chaîne s2 dans la chaîne s1
Le programme suivant montre l'utilisation de certaines de ces fonctions en C ++:
#include #include using namespace std; int main() { char firstStr(50) = 'This is softwareTestingHelp.com'; char secStr(50) = 'a testing platform'; int len = strlen(firstStr); cout<<'Length of firstStr : '< Production:
Longueur de firstStr: 31
Chaîne résultante (secStr): softwareTesting
Comparaison de firstStr et secStr: -31
Concatenated secStr: softwareTesting for you
La première occurrence de i dans firststr at: s est softwareTestingHelp.com
Classe de chaîne en C ++
La chaîne en C ++ qui est définie par la classe «std :: string» est une représentation du flux de caractères dans un objet. En d'autres termes, la classe String est une collection d'objets chaîne. Cette classe de chaînes fait partie de l'espace de noms std et est définie dans l'en-tête «string.h».
Voyons quelques-unes des différences fondamentales entre la classe de chaînes et le tableau de caractères.
- Alors que les tableaux de caractères dont nous avons parlé ci-dessus sont alloués statiquement pendant la compilation, les chaînes sont des objets et peuvent donc être allouées dynamiquement.
- Les tableaux de caractères étant de nature statique, ils ne peuvent pas être réduits ou développés une fois définis. Par conséquent, si nous avons un tableau de caractères de taille 100 et que je l'ai initialisé avec le mot «Bonjour», alors l'espace restant est gaspillé.
Char mystr (100) = 'Bonjour';
Ici, les 95 emplacements restants sont gaspillés.
Contrairement à cela, les objets chaîne sont de nature dynamique et occuperont l'espace exact de la valeur.
- Les tableaux de caractères sont plus rapides en performances tandis que les chaînes sont plus lentes.
- Les tableaux de caractères ont peu de fonctions opérant sur eux qui peuvent les manipuler. La classe String a de nombreuses fonctions, y compris les fonctions d'itérateur.
Voici quelques-unes des différences fondamentales entre le tableau de caractères et la classe d'objets chaîne.
Ensuite, nous verrons quelques exemples de classe string ainsi que des opérations de base effectuées sur des objets de la classe string.
Un exemple pour déclarer et initialiser la classe de chaîne.
#include #include using namespace std; int main() { string str='This is string object in C++'; cout<<'
String entered is :'<Dans l'exemple ci-dessus, nous avons déclaré et initialisé un objet string à l'aide de la classe «string». Ceci est un exemple simple. Maintenant, nous allons avoir un programme pour lire la chaîne de l'utilisateur et également montrer quelques fonctions de chaîne, y compris trouver la longueur et comparer deux chaînes.
#include #include using namespace std; int main() { string str; cout<<'Input the string
'; getline(cin,str); cout<<'
String entered is :'< Production:
Saisissez la chaîne
LogicielTestAide
La chaîne saisie est: SoftwareTestingHelp
La longueur de la chaîne str est: 19
Deux chaînes sont égales
Nouveau str1: SoftwareTestingHelp.com
str nouvelle longueur: 0
Dans l'illustration ci-dessus, nous avons utilisé de nombreuses fonctions de chaîne pour manipuler les chaînes. Après avoir déclaré la chaîne, nous utilisons la fonction «getline» de la classe string pour lire la chaîne à partir de l'entrée standard.
Une fois que nous avons lu la chaîne, nous trouvons sa longueur en utilisant la fonction «longueur». Si nous avons besoin de comparer deux chaînes pour évaluer si elles sont égales ou non, nous pouvons utiliser la fonction «comparer» de la classe de chaînes. Si la fonction renvoie 0, les deux chaînes sont égales sinon la fonction renvoie une valeur non nulle.
Encore une autre fonction consiste à ajouter une autre chaîne à la fin de la chaîne existante. C'est la fonction «ajouter». Dans cet exemple, nous ajoutons «.com» à la chaîne str1 déjà existante avec la valeur «softwaretesting».
La dernière fonction de l'exemple est la fonction clear qui est utilisée pour effacer le contenu de l'objet string invoquant. Dans cet exemple, nous effaçons le contenu de l'objet str afin que sa longueur devienne 0.
Conclusion
Dans ce didacticiel, nous avons couvert le tableau de caractères également appelé chaînes de style C ainsi que les bases de la classe de chaînes. La classe String est fournie avec plus d'utilitaires comme la classe iterator car il s'agit d'une classe conteneur.
Nous en verrons plus sur la classe string et ses fonctions dans nos prochains tutoriels STL !!
=> Visitez ici pour voir la série de formations C ++ pour tous.
lecture recommandée
- Shell tri en C ++ avec des exemples
- Fonctions de date et d'heure en C ++ avec des exemples
- Tutoriel Java String avec String Buffer et String Builder
- Sélection de tri en C ++ avec des exemples
- Fonctions de chaîne Python
- Tutoriel Python DateTime avec des exemples
- Commande Cut sous Unix avec des exemples
- Plus de 70 meilleurs didacticiels C ++ pour apprendre la programmation C ++ gratuitement