関数に渡された文字列の長さを表示するのではなく、文字列の更新された長さを返すのはなぜですか?変更された文字列の長さを返さない関数
#include <string>
#include <iostream>
using namespace std;
int number_needed(string a, string b) {
for(int i=0;i<a.length();i++)
{
for(int j=0;j<b.length();j++)
{
if(a[i]==b[j]){
{
a[i]='\0';
b[j]='\0';
}
}
}
}
cout<<a<<" "<<b<<endl;
return a.length()+b.length();
}
int main(){
string x;
cin >> x;
string y;
cin >> y;
cout << number_needed(x, y) << endl;
return 0;
}
入力:
asjdsa出力:weasaa
WEAのJDS
FUNCの
12(FUNCのnumber_neededから返された値)戻り値があることがnumber_needed:期待
wea jds
6
なぜ文字列の長さが変更されたと思いますか? – UnholySheep
の内容を上書きしただけでは、cppを使用するとcに書き込まれません。 [string](http://www.cplusplus.com/reference/string/string/) – Stargateur
脇に、 'using namespace std;'は悪い考えです。あるいは、そこにあるもの、そこにいるもの、またはいつかそこにいるかもしれないものすべてを知っていますか? – Deduplicator