comparison enigma/plugboard.cpp @ 6:3370383116db

Bug fix for the string functions.
author Brian Neal <bgneal@gmail.com>
date Tue, 26 Jun 2012 21:22:42 -0500
parents f4e25e6b76c3
children
comparison
equal deleted inserted replaced
5:80debdaa4f65 6:3370383116db
132 { 132 {
133 const auto pairs = get_pairs(); 133 const auto pairs = get_pairs();
134 134
135 std::string s; 135 std::string s;
136 136
137 for (const auto p : pairs) 137 for (const auto& p : pairs)
138 { 138 {
139 s += static_cast<char>(p.first + 'A'); 139 s += static_cast<char>(p.first + 'A');
140 s += static_cast<char>(p.second + 'A'); 140 s += static_cast<char>(p.second + 'A');
141 s += ' '; 141 s += ' ';
142 } 142 }
143 s.erase(s.size() - 1); // erase trailing space 143
144 if (!s.empty())
145 {
146 s.erase(s.size() - 1); // erase trailing space
147 }
144 return s; 148 return s;
145 } 149 }
146 150
147 //////////////////////////////////////////////////////////////////////////////// 151 ////////////////////////////////////////////////////////////////////////////////
148 152
149 std::string plugboard::navy_str() const 153 std::string plugboard::navy_str() const
150 { 154 {
151 const auto pairs = get_pairs(); 155 const auto pairs = get_pairs();
152 156
153 std::ostringstream os; 157 std::ostringstream os;
154 for (const auto p : pairs) 158 for (const auto& p : pairs)
155 { 159 {
156 os << (p.first + 1) << '/' << (p.second + 1) << ' '; 160 os << (p.first + 1) << '/' << (p.second + 1) << ' ';
157 } 161 }
158 162
159 std::string s(os.str()); 163 std::string s(os.str());
160 s.erase(s.size() - 1); // erase trailing space 164 if (!s.empty())
165 {
166 s.erase(s.size() - 1); // erase trailing space
167 }
161 return s; 168 return s;
162 } 169 }
163 170
164 //////////////////////////////////////////////////////////////////////////////// 171 ////////////////////////////////////////////////////////////////////////////////
165 172