Порекомендуйте как можно сократить код
#include <iostream>
#include <string>
using namespace std;
string inputWord(const string s) {
string q;
while (q.length() != s.length()) {
cin >> q;
for (auto & c: q) c = toupper(c);
if (q.length() != s.length()) {
cout << "Длинна вашего слова не соответсвует длинне искомого слова! Повторите попытку" << endl;
}
cout << "+ означает что буква на своем месте.\n$ означает что буква есть в слове, но не другом месте.\n0 означает что данной буквы нет в искомом слове." << endl;
}
return q;
}
void areWordsEquals(const string s, const string q) {
string tmp = s;
string arr[s.length()];
for (int i = 0; i < s.length(); i++) {
arr[i] = '0';
}
for (int i = 0; i < s.length(); i++) {
if (q[i] == tmp[i]) {
arr[i] = '+';
tmp[i] = '@';
cout << arr[i];
}
cout << endl;
}
for (int i = 0; i < s.length(); i++) {
if (tmp.find(q[i]) != string::npos) {
arr[i] = '$';
cout << arr[i];
}
cout << endl;
}
for (int i = 0; i < s.length(); i++) {
cout << arr[i];
}
cout << endl;
}
int main() {
string s;
cout << "Введите слово: ";
cin >> s;
for (auto & c: s) c = toupper(c);
cout << "данное слово состоит из " << s.length() << " буков." << endl;
string q = inputWord(s);
while (s != q) {
areWordsEquals (s, q);
q = inputWord(s);
}
for (int i = 0; i < s.length(); i++) {
cout << "+";
}
cout << endl;
cout << "Вы ввели слово: " << q << ", и искомое слово: " << s;
return 0;
}