Maison  >  Article  >  développement back-end  >  Modifier une chaîne en réorganisant les voyelles en fonction de leur position d'index dans la chaîne

Modifier une chaîne en réorganisant les voyelles en fonction de leur position d'index dans la chaîne

王林
王林avant
2023-09-06 18:53:06960parcourir

Modifier une chaîne en réorganisant les voyelles en fonction de leur position dindex dans la chaîne

Dans cet article, nous verrons comment modifier une chaîne donnée en C++ en réorganisant les voyelles par ordre alphabétique à leurs index respectifs. Nous expliquerons également les méthodes utilisées pour résoudre ce problème et fournirons des exemples avec des cas de test.

Énoncé du problème

À partir d'une chaîne, réorganisez les voyelles à leurs indices respectifs par ordre alphabétique. Les consonnes de la chaîne doivent conserver leur ordre d'origine. Par exemple, étant donné la chaîne « tutorialspoint », le résultat devrait être « tatiriolspount ».

Méthode

Ce problème peut être résolu à l'aide d'un algorithme simple. Nous pouvons d’abord créer une chaîne distincte contenant toutes les voyelles de la chaîne donnée dans leur ordre respectif. Nous pouvons ensuite trier cette chaîne par ordre alphabétique. Enfin, nous pouvons remplacer les voyelles de la chaîne d'origine par les voyelles à leurs indices respectifs dans la chaîne triée.

Exemple

Voyons l'approche étape par étape dans le code C++ -

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

string modifyString(string str) {
   string vowels = "";
   string result = "";
   
   // Extract vowels from the string
   for(int i = 0; i < str.length(); i++) {
      if(str[i] == 'a' || str[i] == 'e' || str[i] == 'i' || str[i] == 'o' || str[i] == 'u') {
         vowels += str[i];
      }
   }
   
   // Sort the vowels in alphabetical order
   sort(vowels.begin(), vowels.end());
   
   // Replace the vowels in the original string with sorted vowels
   int vowelIndex = 0;
   for(int i = 0; i < str.length(); i++) {
      if(str[i] == 'a' || str[i] == 'e' || str[i] == 'i' || str[i] == 'o' || str[i] == 'u') {
         result += vowels[vowelIndex];
         vowelIndex++;
      } else {
         result += str[i];
      }
   }
   return result;
}

int main() {
   string str = "tutorialspoint";
   cout << modifyString(str) << endl;
   return 0;
}

Sortie

tatiriolspount

Cas de test

Testons le code avec quelques exemples supplémentaires :

Exemple 1

Input: "quick brown fox jumps over the lazy dog"
Output: "qaeck brewn fix jomps ovor tho luzy dug"

Exemple 2

Input: "the quick brown fox"
Output: "the qiock brown fux"

Dans les deux exemples, les voyelles sont réorganisées par ordre alphabétique selon leurs indices respectifs, tandis que les consonnes conservent leur ordre d'origine.

Conclusion

En résumé, nous avons expliqué comment modifier une chaîne donnée en C++ en réorganisant les voyelles par ordre alphabétique à leurs indices respectifs. Nous expliquons également l'approche utilisée pour résoudre ce problème et fournissons du code fonctionnel avec des exemples. En utilisant les méthodes mentionnées dans cet article, nous pouvons facilement résoudre des problèmes similaires et modifier la chaîne selon nos besoins.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer