Это простой пример программы:Как вернуть строку в функции C++?
#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
. Как я могу вернуть строку с помощью этой функции?
Вы фактически не инициализируете свои строковые переменные. – Cairnarvon
Почему, по вашему мнению, возникает проблема с возвратом строки? Проверьте значения строк внутри функции. – juanchopanza
Текст, который вы выводите, - это просто текст компилятору - он не попытается понять, что означает этот текст, и не будет выполнять ваши обещания для вас. В конце концов, возможно, вы * подразумевали * лгать пользователю. – Steve314