Trier les caractères d'une chaîne en C ++

Trier les caractères d'une chaîne en C ++
Le tri d'une chaîne est considéré comme une organisation dans une commande ascendante ou décroissante, ou tout ordre fourni en C ++, qui n'est rien de plus que l'obtention des chaînes données dans un ordre approprié ou l'ordre donné peut être exprimé car les chaînes sont triées dans la disposition des commandes spécifiée. La sortie d'un programme de tri est une entrée réarrangée ou une permutation de cette entrée. En C ++, il existe plusieurs méthodes pour tri les chaînes en implémentant des algorithmes de tri: tri de bulles, tri d'insertion, bibliothèques STL, etc. Ces méthodes ont trié les caractères de la chaîne dans les ordres ascendants ou décroissants.

Méthodes de tri de la chaîne et des caractères d'une chaîne en C++

Il existe différentes stratégies de tri disponibles pour organiser une chaîne dans un certain ordre. Parmi eux se trouvent:

Tri bulle

L'un des algorithmes de tri les plus simples en C ++ est le tri des bulles. Les chaînes sont triées en utilisant cette approche en comparant les chaînes ou les caractères à proximité dans la chaîne. Ensuite, échangez-les dans l'ordre fourni, qui pourrait être disposé par ordre alphabétique en C++.

Tri par insertion

L'algorithme de tri d'insertion sélectionne les caractères un à la fois et les insère dans la position appropriée. Chaque itération de la méthode de tri d'insertion prend un caractère de la liste donnée et l'inserte dans la sous-chaîne triée. La méthode prend le caractère et l'inserte dans la bonne position en fonction de la valeur ASCII tout en triant par ordre alphabétique.

Fonction de bibliothèque standard

En importation du fichier d'en-tête dans notre code, nous pouvons utiliser la méthode de tri de la bibliothèque de modèle standard C ++. Comparé à la création du code, l'utilisation de cette méthode intégrée est plus facile et plus rapide.

Nous pouvons également utiliser Std :: Sort () en C++. La STD :: Sort () est une fonction de bibliothèque de modèles standard (STL) en C++. La méthode accepte un début et un itérateur de fin et, par défaut, est organisé par ordre croissant. En remettant une opération de comparaison qui renvoie un booléen, la méthode peut également être utilisée pour un tri spécifique.

Exemple 1

La fonction de tri est l'une des façons les plus simples de trier le caractère de la chaîne. La seule chose requise est simplement d'importer la bibliothèque standard de C++. Le code commence par l'importation du «STDC standard++.Bibliothèque H ”dans la section d'en-tête. La bibliothèque contient tous les fichiers de bibliothèque standard. Le «namespace std» est également inclus dans le code.

Après la section d'en-tête, nous avons créé une fonction vide comme «mystring» et passé une chaîne de référence «Sortstr» dans le constructeur. Ensuite, nous avons invoqué la méthode SORT () dans la fonction «MyString». La méthode tri () a l'itérateur de départ et l'itérateur de fin, qui trie le caractère de chaîne dans l'ordre croissant. La chaîne triée sera imprimée via l'instruction COUT.

Maintenant, nous avons la fonction principale dans laquelle nous avons déclaré une chaîne comme «strval» et l'avons initialisée. La chaîne «strval» est passée dans la fonction «MyString» pour trier la chaîne donnée.

#inclure
Utilisation de Namespace Std;
void MyString (String & Sortstr)

trier (sortstr.begin (), sortstr.fin());
couter << SortStr;

int main()

String strval = "ProgrammingNanguage";
MyString (strval);
couter << "\n";
retour 0;

La méthode tri () a trié les caractères de chaîne dans l'ordre croissant. Le résultat des caractères de chaîne d'ordre croissant est affiché dans l'image.

Exemple2

Nous pouvons également trier les caractères de chaîne ou de chaîne en utilisant la méthode de tri STD :: qui est incluse dans la bibliothèque intégrée C ++ . Le code suivant contient deux bibliothèques, «iostream» et «algorithme» dans la section d'en-tête. Grâce à «l'algorithme» de la bibliothèque, nous pouvons accéder à la méthode STD :: Tri.

Après la section d'en-tête, nous avons la fonction principale dans laquelle nous avons défini un tableau de chaîne comme des «couleurs» et l'avons initialisée avec quelques mots. Ensuite, nous devons définir une taille de tableau égale à «5» dans un «arrsize» de type de données entier. Maintenant, l'utilisation de la méthode STD :: Sort prend un tableau de «couleurs» et la taille du tableau comme argument pour trier la chaîne.

Il y a une instruction pour Loop dans la ligne de code suivante, qui itère la boucle jusqu'à la taille du tableau «5» pour un tableau de chaîne. L'instruction COUT imprimera le tableau trié dans l'ordre croissant.

#inclure
#inclure
Utilisation de Namespace Std;
int main()
couleurs de chaîne [] = "rose", "gris", "jaune", "bleu", "rouge";
int arrsize = 5;
std :: tri (couleurs, couleurs + arrsize);
pour (int a = 0; a < 5; a++)
couter<
retour 0;

La sortie de la chaîne de fonction de bibliothèque standard indiquée ci-dessous est triée dans l'ordre alphabétique.

Exemple 3

Une stratégie efficace serait la première à remarquer qu'il ne peut y avoir que 26 caractères distincts. Ainsi, dans un tableau hachis, nous pouvons stocker le nombre d'occurrences de chaque personnage de 'A à' Z.`` Nous allons simplement rechercher le tableau haché et sortir les caractères de 'a' à 'z' tel qu'ils apparaissent plusieurs fois dans la chaîne d'entrée. Ainsi, pour implémenter le code, nous avons importé une bibliothèque standard, «STDC++.h ”qui nous aide à trier le tableau spécifié.

Maintenant, nous avons déclaré les «caractères» variables avec le mot-clé «const» et l'avons initialisé avec la valeur «26». Ensuite, nous avons une fonction appelée «Sortstr» qui prend la référence d'une chaîne triée comme «Strx». Dans la fonction, nous avons créé un tableau de hachage en tant que «countchar». Initialement, le nombre de caractères de départ est initialisé avec zéro. Après l'initialisation du tableau de hachage, nous avons une instruction pour Loop qui traverse la chaîne et incrémente le nombre de caractères. Le premier index de la table hachée représente le caractère «A»; Le second représente «b», etc.

Donc, pour la position du personnage dans le compte d'un tableau de hachage, nous avons utilisé Strx [i] - 'A'. Nous avons une boucle imbriquée pour traverser et comparer le caractère à travers la chaîne. Si la variable «J» dans la boucle est supérieure au caractère de comptage de la variable «i». Le tableau de hachage de chaîne traversera et imprimera les caractères. Dans les dernières lignes, nous avons la fonction principale où nous avons déclaré et initialisé la chaîne pour la fonction «MyString».

#inclure
Utilisation de Namespace Std;
CONST INT CAROTES = 26;
void sortstr (String & Strx)

int countchar [caractères] = 0;
pour (int i = 0; iCountchar [strx [i] - 'a'] ++;
pour (int i = 0; ipour (int j = 0; jcouter << (char)('a'+i);

int main()

String myString = "Welcomefriends";
Sortstr (mystring);
couter <<"\n";
retour 0;

Le résultat du caractère trié de la chaîne est affiché sur l'écran du terminal suivant.

Exemple 4

Dans la programmation C ++, nous devons demander à l'utilisateur de fournir quelques noms pour organiser des chaînes (noms) par ordre alphabétique (chaînes). Ensuite, comme indiqué dans le code ci-dessous, triez ces chaînes d'entrée ou les noms de manière alphabétique. Nous avons l'algorithme de tri à bulles pour cette illustration. Le code a la fonction principale où nous avons défini un tableau de caractères «allname» de la taille du tableau «5» et la valeur des caractères de «10». De plus, nous avons un autre tableau «Nom» de la chaîne de type de données et définissons la valeur du caractère sur «10».

Ensuite, nous avons défini une variable de type entier «X» et «Y». Le tableau de caractères sera entrée par l'utilisateur dans ce code. L'utilisateur entrera la chaîne de noms à cinq caractères. Maintenant, nous avons des déclarations de boucle imbriquées, et dans le bloc de boucle imbriqué, nous avons une condition si la condition qui utilise la fonction «strcmp» pour comparer deux chaînes. Après avoir comparé les chaînes, nous avons invoqué la fonction «strcpy» pour échanger les noms de la chaîne. En conséquence, nous avons l'ordre alphabétique trié des noms de chaînes.

#inclure
#inclure
Utilisation de Namespace Std;
int main()

char allname [5] [10], nom [10];
int x, y;
couter<<"Enter Names: ";
pour (x = 0; x> allName [x];
pour (x = 1; x<5; x++)

pour (y = 1; y0)

strcpy (nom, allname [y-1]);
strcpy (allname [y-1], allname [y]);
strcpy (allName [y], nom);



couter<<"\nAlphabetical order of Names :\n";
pour (x = 0; x<5; x++)
couter<couter<retour 0;

Au début, vous devez saisir cinq noms aléatoires; Ensuite, il triera les noms de chaîne dans l'ordre alphabétique. Les noms de chaîne triés résultants dans l'ordre alphabétique sont affichés ci-dessous.

Conclusion

Nous concluons que le caractère du tri des cordes en C ++ est accompli à travers divers algorithmes de tri. Ici, nous explorons comment trier une chaîne en C ++ avec quelques exemples de tri et comment trier une chaîne en utilisant quelques algorithmes de tri. Toutes les implémentations des codes sont effectuées dans Ubuntu 20.04 Utilisation du compilateur G ++. Nous espérons que cet article vous a aidé à mieux comprendre l'approche de la construction d'une fonction de tri personnalisée pour trier une chaîne de caractères non ordonnée et sa mise en œuvre en C++.