Maison >développement back-end >C++ >Inverser une chaîne en fonction du nombre de mots
La manipulation de chaînes est une compétence essentielle en programmation, car elle nous aide à traiter et à analyser efficacement les données texte.
Dans cet article, nous verrons comment inverser une chaîne en fonction du nombre de mots en C++.Méthode
Approche 1 − Utilisation de flux de chaînes et de vecteurs
Méthode 2 - Utilisation des fonctions de manipulation de sous-chaînes et de chaînes
SyntaxeFonctions de manipulation de chaînes : certaines fonctions courantes de manipulation de chaînes en C++ incluent length(), substr(), find(), delete() et replace().
std::string reverseStringByWords(const std::string& input) {} std::reverse(words.begin(), words.end());Approche 1 : - Utilisation de flux de chaînes et de vecteurs
Ensuite, la collection de mots est inversée à l'aide de la fonction inverse de la bibliothèque d'algorithmes. Les mots inversés sont ensuite réunis pour former la chaîne de sortie finale, avec un espace ajouté après chaque mot sauf le dernier.
Algorithme
#include <iostream> #include <string> #include <sstream> #include <vector> #include <algorithm> std::string reverseStringByWords(const std::string& input) { std::stringstream ss(input); std::string word; std::vector<std::string> words; while (ss >> word) { words.push_back(word); } std::reverse(words.begin(), words.end()); std::string output; for (const auto& w : words) { output += w + " "; } output.pop_back(); // Remove the last space return output; } int main() { std::string input = "Hello, how are you?"; std::string output = reverseStringByWords(input); std::cout << "Input: " << input << std :: endl; std:: cout << "Output: " << output << std :: endl; return 0; }La traduction chinoise de Output
Input: Hello, how are you? Output: you? are how Hello,
Cette approche consiste à diviser manuellement la chaîne d'entrée en sous-chaînes, qui représentent des mots individuels. Les sous-chaînes sont concaténées dans l'ordre inverse pour former la chaîne de sortie finale.
Algorithme
The code is a solution for reversing the order of words in a given string. It does this by dividing the input string into substrings using the find function and concatenating these substrings in reverse order to form the output string. The last space character is then removed from the output string using the pop_back function. This approach is more manual and low-level compared to Approach 1 and requires a deeper understanding of string manipulation. The code takes a given input string, divides it into substrings, reverses the order of these substrings, and returns the final output string.
#include <iostream> #include <string> std::string reverseStringByWords(const std::string& input) { size_t start = 0; size_t end = input.find(' '); std::string output; while (end != std::string::npos) { output = input.substr(start, end - start) + " " + output; start = end + 1; end = input.find(' ', start); } output = input.substr(start) + " " + output; output.pop_back(); // Remove the last space return output; } int main() { std::string input = "Hello, how are you?"; std::string output = reverseStringByWords(input); std::cout << "Input: " << input << std::endl; std::cout << "Output: " << output << std::endl; return 0; }
Input: Hello, how are you? Output: you? are how Hello,
在编程中字符串操作的重要性:掌握字符串操作技术对于任何程序员来说都是至关重要的,因为文本数据在软件开发中无处不在。理解各种字符串操作的方法可以帮助开发人员编写更高效、可维护和健壮的代码。
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!