- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
void two(string str, int *mstr,int l) //Замена цифр в строке
{
string base[10] = { "ноль","один","два","три","четыре","пять","шесть","семь","восемь","девять" }; //Строки для замены
int i,j,t;
for (i = 0;i < l;i++)
{
str.insert(mstr[i]+1, base[atoi(&str[mstr[i]])]); //Вставка после числа в строку
t = base[atoi(&str[mstr[i]])].length(); //Смещение последующих чисел в строке
str.erase(mstr[i], 1); //Удаление цифры в строке
for (j = i; j < l;j++) //Новые позиции чисел в строке
{
mstr[j] += t-1;
}
}
cout << "Изменённая строка: " << str << endl;
}
По заданию требовалось обработать символьную строку так, чтобы цифры записывались числительными. В этой функции идет замена цифр в строке. Массив str - строка символов, mstr - int массив, куда записывается позиция числа в строке (т.е в строке aaaa1aaa mstr[0]=4), а l - количество чисел в строке.
Код не мой. Это ад. Неработающий.
Сидел, ржал.