#実現したいこと
文字列の数を正しく取得したいです。
##現状
文字列数出力が「11」になってしまい、正しい文字列数「8」を取得できません。
***で区切られている真ん中のコードを記述する課題に取り組んでいます。
[return getConnectedString().length();]の部分が上手くいっていなそうです。
ご教授お願い致します。
###コード
C++
1#include <iostream> 2using namespace std; 3 4class TwoStrings{ 5 private: 6 //1つ目の文字列 7 string m_string1; 8 //2つ目の文字列 9 string m_string2; 10 public: 11 //1つ目の文字列を設定 12 void setString1(string s); 13 //2つ目の文字列を設定 14 void setString2(string s); 15 //1つ目の文字列を取得 16 string getString1(); 17 //2つ目の文字列を取得 18 string getString2(); 19 //2つの文字列をつないだものを取得 20 string getConnectedString(); 21 //getConnectedString()で得られる文字列の長さを取得 22 int getConnectedLength(); 23}; 24 25//******************************************************************************************** 26 27void TwoStrings::setString1(string s){ 28 m_string1 = s; 29} 30 31string TwoStrings::getString1(){ 32 return m_string1; 33} 34 35void TwoStrings::setString2(string s){ 36 m_string2 = s; 37} 38 39string TwoStrings::getString2(){ 40 return m_string2; 41} 42 43string TwoStrings::getConnectedString(){ 44 return m_string1.append(m_string2); 45} 46 47int TwoStrings::getConnectedLength(){ 48 return getConnectedString().length(); 49} 50 51//******************************************************************************************** 52 53int main(){ 54 TwoStrings s; 55 s.setString1("Hello"); 56 s.setString2("C++"); 57 cout << "1つ目の文字列は" << s.getString1() << endl; 58 cout << "2つ目の文字列は" << s.getString2() << endl; 59 cout << "2つの文字列を合成したものは" << s.getConnectedString() << endl; 60 cout << "合成した文字列の長さは" << s.getConnectedLength() << "文字" << endl; 61 return 0; 62}
出力
C++
11つ目の文字列はHello 22つ目の文字列はC++ 32つの文字列を合成したものはHelloC++ 4合成した文字列の長さは11文字
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/02 09:01
2021/11/02 09:10
2021/11/02 09:16
2021/11/02 09:30