文字列操作は、テキスト データを効率的に処理および分析するのに役立つため、プログラミングにおいて不可欠なスキルです。C には豊富な文字列操作関数とオブジェクトのセットが用意されており、操作が容易になります。テキストデータ.
この記事では、C で単語数に応じて文字列を反転する方法について説明します。
###方法### アプローチ 1- 文字列ストリームとベクトルの使用
方法 2- 部分文字列および文字列操作関数を使用する ###構文### C の String オブジェクト: std::string クラスは C 標準ライブラリの一部であり、さまざまな文字列操作関数を提供します。
コードで採用されているこのアプローチには、stringstream オブジェクトを使用して入力文字列を単語のシーケンスに変換することが含まれます。その後、単語はストリームから 1 つずつ抽出され、ベクトルで表される文字列のコレクションに格納されます。
その後、アルゴリズム ライブラリの reverse 関数を使用して、単語のコレクションが反転されます。反転された単語は結合されて、最後の出力文字列を除く各単語の後にスペースが追加されて、最終的な出力文字列が形成されます。
###例###
このコードは、指定された文字列内の単語の順序を反転する手順を具体化しています。これは、まず stringstream オブジェクトを使用して入力文字列を単語ベースのストリームに変換することによって実現されます。その後、単語が 1 つずつ抽出されます。その後、アルゴリズム ライブラリの reverse 関数を使用してベクトルを反転します。最後に、反転された単語が結合されて最終的な出力文字列が形成され、最後の単語を除く各単語の後にスペースが挿入されます。その後、最後のスペースが出力文字列から削除され、文字列ストリーム、ベクトル、アルゴリズム ライブラリなどの標準ライブラリの機能を最大限に活用する、コンパクトでわかりやすいソリューションがレンダリングされます。 リーリー出力
リーリー方法 2 は、文字列内の単語の順序を逆にする別の解決策です。方法 1 のように文字列ストリームとベクトルを使用する代わりに、部分文字列と文字列操作関数を使用します。
######始める######
入力文字列内の単語の開始位置と終了位置を保存するために使用される 2 つの size_t 変数 start と end を初期化します。
入力文字列内の最初のスペースの位置を見つけて、それを end 変数に格納します。
入力文字列を反復処理し、部分文字列を使用して単語を抽出します。
開始位置から終了位置までの部分文字列を抽出します。
抽出された部分文字列を出力文字列の前に連結し、その後にスペースを入れます。
開始位置を終了位置の後の位置に更新します。
入力文字列内の新しい開始位置から次のスペースを検索し、終了位置を更新します。
ループが終了したら、
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,
在编程中字符串操作的重要性:掌握字符串操作技术对于任何程序员来说都是至关重要的,因为文本数据在软件开发中无处不在。理解各种字符串操作的方法可以帮助开发人员编写更高效、可维护和健壮的代码。
以上が単語数に応じて文字列を反転するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。