Форум программистов, компьютерный форум CyberForum.ru

Строки в с++ - C++

Восстановить пароль Регистрация
 
Pain'ka
 Аватар для Pain'ka
1 / 1 / 0
Регистрация: 23.11.2011
Сообщений: 54
20.10.2013, 18:12     Строки в с++ #1
Доброго времени суток!
У меня вопрос: есть массив строк, состоящий из букв и цифр. надо переписать этот массив, при этом увеличивая цифры на 10. например, написано "njui6nki", надо получить: "njui16nki".
задала массив через string pp[12].
может как-то по-оптимальней можно задать?
буду рада любым идеям.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2013, 18:12     Строки в с++
Посмотрите здесь:

Ввести строки, заметнить строки C++
Строки. Работа с каждым словом строки. C++
Разбение строки, на строки по 3 символа C++
C++ Центрирование - расположение строки s1 посередине строки s2 длины L.
Размещение строки s1 в середине строки s2 C++
C++ Строки в с++. После строки выводятся не понятные символы
Вывести все введенные строки. Отсортировать строки. Вывести самую длинную строку C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Hrobak
288 / 168 / 11
Регистрация: 22.03.2010
Сообщений: 483
Завершенные тесты: 1
20.10.2013, 19:41     Строки в с++ #2
Нужно задать именно массив строк или нужно просто обработать одну строку? Если нужно просто строку, можно написать std::string s = "What4ever u wan8t". В любом случае для выполнения задания здесь достаточно просто перед каждой цифрой вставить '1'.
Pain'ka
 Аватар для Pain'ka
1 / 1 / 0
Регистрация: 23.11.2011
Сообщений: 54
20.10.2013, 19:48  [ТС]     Строки в с++ #3
нужно обработать именно массив, и числа там могут быть самые разные: от 0 до 50 где-то, и каждое надо увеличить на определенное число, чаще двузначное.
я сделала сначала на модели: с числами 0,1, 2. все получилось, когда дошла до двузначных чисел - наступил ступор.
я делала вот как:
C++
1
2
3
4
5
6
7
8
9
10
11
12
for(j=0;j<N;j++){
        for(ii=0; ii<l[j];ii++)
        {
              if(pp[j][ii]=='y'){
                                
                                ii=ii+2;
                                [COLOR="Red"]aa = pp[j][ii];//-'0';
                                a=aa+N;
                                pp[j][ii]=a;//+ '0';[/COLOR]
                                ii=ii-2;
                                }
}
N изначально задается
красным выделен кусок, где увеличивала число
Hrobak
288 / 168 / 11
Регистрация: 22.03.2010
Сообщений: 483
Завершенные тесты: 1
20.10.2013, 20:28     Строки в с++ #4
Ну код, который приведен выше, годится только для увеличения однозначных чисел, причем только так, что результат не превышает 10. Для произвольных чисел легче всего использовать регулярные выражения из библиотеки Boost или Qt, или же попробовать сделать так: находим цифру, пока элемент строки цифра, записываем ее в какую-то временную строку; затем можно воспользоваться методом std::stoi для конвертации строки в число и увеличения на нужное число; потом конвертируем число обратно в строку и вставляем в нужное место исходной строки, очищаем временную строку.
Pain'ka
 Аватар для Pain'ka
1 / 1 / 0
Регистрация: 23.11.2011
Сообщений: 54
20.10.2013, 21:27  [ТС]     Строки в с++ #5
А если попробовать так: встретила цифру, проверила след символ, если цифра, то запомнила их какой-нидь перемнной, преобразовала в число, увеличила, и обратно преобразовала? так слишком по-идиотски?
и если так все же попробовать сделать, то считает ли он 2 символа как одно число?
Hrobak
288 / 168 / 11
Регистрация: 22.03.2010
Сообщений: 483
Завершенные тесты: 1
20.10.2013, 21:32     Строки в с++ #6
Цитата Сообщение от Pain'ka Посмотреть сообщение
А если попробовать так: встретила цифру, проверила след символ, если цифра, то запомнила их какой-нидь перемнной, преобразовала в число, увеличила, и обратно преобразовала?
Ну это фактически и есть то, что я писал, только для случая 2-х цифр.
Цитата Сообщение от Pain'ka Посмотреть сообщение
то считает ли он 2 символа как одно число?
. 2 символа - это 2 символа, но если их записать в некоторую временную строку, то потом эту строку можно преобразовать в двухзначное число.
Pain'ka
 Аватар для Pain'ka
1 / 1 / 0
Регистрация: 23.11.2011
Сообщений: 54
20.10.2013, 22:22  [ТС]     Строки в с++ #7
спасибо! попробую.
а как лучше объявлять и инициализировать массив строк? через string pp[12] можно, или есть более оптимальный вариант?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.10.2013, 22:27     Строки в с++
Еще ссылки по теме:

Строки (Из строки удалить ту часть, которая в "" (кавычках)) C++
Строки. Удалить из строки S1 последнюю подстроку, совпадающую с S2 C++
Строки (Удаление слова из строки) C++
Как поменять знак элементов матрицы, и как вычесть элементы одной строки из другой строки? C++
C++ String-строки. C-строки. Лексемы

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Hrobak
288 / 168 / 11
Регистрация: 22.03.2010
Сообщений: 483
Завершенные тесты: 1
20.10.2013, 22:27     Строки в с++ #8
Если точно известно, что строк не больше 12, то вполне нормально.
Yandex
Объявления
20.10.2013, 22:27     Строки в с++
Ответ Создать тему
Опции темы

Текущее время: 07:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru