Как заменить элемент на сочетание букв?
Пусть у нас есть массив, у которого четные элементы заменяются на сочетание букв "KB". Например, было 1234565432, а должно стать 1KB3KB5KB5KB3KB. Пробую сделать напрямую, но на выходе результата не получается:
for (int i = 0; i < strlen(mstr); i++) {
if (arr[i] % 2 == 0) {
kb_str[i] = '0' + arr[i];
kb_str[i] = 'KB';
//kb_str[i + 1] = 'B';
}
else {
kb_str[i] = '0' + arr[i];
}
cout << kb_str[i] << " ";
}
Подскажите, пожалуйста, как модифицировать код?
Ответы (1 шт):
В следующий раз постарайтесь выкладывать ВЕСЬ код. ("int main() {...}", "#include <*>", итд).
Посмотрел, что вы написали и ничего не понял. Потому вот моё решение: Создадим объект класса string, пройдёмся по нужной строке, если увидим чётную цифру - просто сделаем конкатенацию 2 строк - буффер (который создали выше) и строку "KB". Если цифра не чётная - просто делаем такую же конкатенацию, но с этой цифрой.
Реализация:
#include <iostream>
#include <string>
using namespace std;
short getNumber(char sym)
{
short num = sym - '0';
if (num > 9)
{
throw exception("unvalid sym");
}
return num;
}
int main()
{
string buffer;
string str;
string need_str;
getline(cin, str);
getline(cin, need_str);
for (size_t x = 0; x < strlen(str.c_str()); x++)
{
if (getNumber(str[x]) % 2 == 0)
{
buffer += need_str;
}
else
{
buffer += str[x];
}
}
cout << str << endl;
cout << buffer << endl;
}