[解決済み] C++の関数から文字列を返すには?[クローズド]
2022-03-14 10:42:14
質問
これは簡単なサンプルプログラムです。
#include <iostream>
#include <string>
using namespace std;
string replaceSubstring(string, string, string);
int main()
{
string str1, str2, str3;
cout << "These are the strings: " << endl;
cout << "str1: \"the dog jumped over the fence\"" << endl;
cout << "str2: \"the\"" << endl;
cout << "str3: \"that\"" << endl << endl;
cout << "This program will search str1 for str2 and replace it with str3\n\n";
cout << "The new str1: " << replaceSubstring(str1, str2, str3);
cout << endl << endl;
}
string replaceSubstring(string s1, string s2, string s3)
{
int index = s1.find(s2, 0);
s1.replace(index, s2.length(), s3);
return s1;
}
コンパイルはできますが、関数は何も返しません。もし私が
return s1
を
return "asdf"
を返します。
asdf
. この関数で文字列を返すにはどうすればよいのでしょうか?
どのように解決するのですか?
の文字列に値を与えていない。
main
したがって、この関数は明らかに空の文字列を返します。
置き換える。
string str1, str2, str3;
を使っています。
string str1 = "the dog jumped over the fence";
string str2 = "the";
string str3 = "that";
また、あなたはいくつかの問題を
replaceSubstring
関数を使用します。
int index = s1.find(s2, 0);
s1.replace(index, s2.length(), s3);
-
std::string::find
が返されます。std::string::size_type
(別名size_t
でなくint
. 2つの違いがあります。size_t
は符号なしであり、必ずしもint
は、プラットフォームによって異なります(例:64ビットのLinuxやWindowsではsize_t
は64ビットの符号なしであるのに対しint
は符号付き32ビット)。 -
以下の場合はどうなりますか?
s2
の一部でない場合はs1
? それをどう修正するかは、あなたに任せるわ。ヒントはstd::string::npos
;)
関連
-
[解決済み】C++ - 適切なデフォルトコンストラクタがない [重複]。
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] バイトを文字列に変換する
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】大文字・小文字を区別しない「Contains(string)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++エラー。アーキテクチャ x86_64 に対して未定義のシンボル
-
[解決済み】C++でint型に無限大を設定する
-
[解決済み】 != と =! の違いと例(C++の場合)
-
[解決済み] クラスにデフォルトコンストラクタが存在しない。
-
[解決済み】cc1plus:エラー:g++で認識されないコマンドラインオプション"-std=c++11"
-
[解決済み】エラー。switchステートメントでcaseラベルにジャンプする
-
[解決済み] [Solved] インクルードファイルが開けません。'stdio.h' - Visual Studio Community 2017 - C++ Error
-
[解決済み】CMakeエラー at CMakeLists.txt:30 (project)。CMAKE_C_COMPILER が見つかりませんでした。
-
[解決済み] 解決済み] `pthread_create' への未定義の参照 [重複] [重複
-
[解決済み】変数やフィールドがvoid宣言されている