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

Дана строка, нужно символ в этой строке заменить ее порядковым номером. - C++

Восстановить пароль Регистрация
 
Assles
0 / 0 / 0
Регистрация: 03.01.2013
Сообщений: 7
03.01.2013, 14:38     Дана строка, нужно символ в этой строке заменить ее порядковым номером. #1
2) дана строка, нужно символ в этой строке заменить ее порядковым номером.

помогите пожалуйста.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.01.2013, 14:38     Дана строка, нужно символ в этой строке заменить ее порядковым номером.
Посмотрите здесь:

C++ составить програму,удаляющую в даной строке каждый символ с четным номером
Дана квадратная матрица порядка m. Преобразовать матрицу по правилу: строку с номером сделать столбцом с номером n, а столбец с номером n - строкой с C++
C++ Дана последовательность 100 целых чисел. Подсчитать сумму тех чисел, значения которых совпадают с их порядковым номером.
C++ Заменить во введенной строке каждую последовательность <xx> (где xx – двухзначное шестнадцатеричное число) на символ с номером xx
C++ Массивы строк. Какой символ встречается в этой строке чаще всего?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
03.01.2013, 15:42     Дана строка, нужно символ в этой строке заменить ее порядковым номером. #2
Можно вот так сделать, кривовато конечно, но всё же
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream> 
 
int main() 
{ 
    char str[100] = "Real Madrid"; // строка
    char ch = 'M';                 // искомый символ
    int i, size; 
    size = strlen(str);
    char buffer[2]; 
 
    for ( i = 0; i < size; ++i) 
        if(str[i] == ch) 
        { 
            itoa(i, buffer, 10); 
            str[i] = *buffer; 
        } 
       std::cout << str << " ";
}
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
03.01.2013, 15:55     Дана строка, нужно символ в этой строке заменить ее порядковым номером. #3
Цитата Сообщение от David Sylva Посмотреть сообщение
Можно вот так сделать, кривовато конечно, но всё же
А если число получится более 9?
Немного переделал, не знаю, работает или нет.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream> 
 
int main() 
{ 
    char str[100] = "MReal MMadridM"; // строка
    char ch = 'M';                 // искомый символ
    int i, size; 
    size = strlen(str);
    char buffer[10]; 
 
    for ( i = 0; i < size; ++i) 
        if(str[i] == ch) 
        { 
            itoa(i+1, buffer, 10); 
                int len=strlen(buffer);
                memmove(str+i+len-1,str+i,size-i);
                for(int j=0;j<len;str[i]=buffer[j],++i,++j);
                --i;
                size+=len;
        } 
       std::cout << str << "\n";
}
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
03.01.2013, 16:03     Дана строка, нужно символ в этой строке заменить ее порядковым номером. #4
Цитата Сообщение от Croessmah Посмотреть сообщение
А если число получится более 9?
Если больше 10 не работает.

Добавлено через 1 минуту
Croessmah твой вариант работает корректно.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11815 / 6794 / 769
Регистрация: 27.09.2012
Сообщений: 16,867
Записей в блоге: 2
Завершенные тесты: 1
03.01.2013, 16:15     Дана строка, нужно символ в этой строке заменить ее порядковым номером. #5
Цитата Сообщение от David Sylva Посмотреть сообщение
Croessmah твой вариант работает корректно.
Не совсем. Он работает для измененной строки. То есть, если идет две буквы М подряд и первая имеет порядковый номер 20, то следующая будет уже с номером 22, потому что будет вставлено два символа.
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
03.01.2013, 16:32     Дана строка, нужно символ в этой строке заменить ее порядковым номером. #6
тс в данной задаче можно ещё попробывать использовать sprintf, простой пример
C++
1
2
3
4
5
6
7
8
#include <iostream>
int main()
{
    int number = 200; 
    char buffer[100]; 
    sprintf(buffer, "%d", number); 
    std::cout << buffer << " ";
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2013, 15:17     Дана строка, нужно символ в этой строке заменить ее порядковым номером.
Еще ссылки по теме:

C++ Найти количество слов, начинающихся с заданного символа, и заменить эти слова их порядковым номером
Дана строка, удалить заданный символ C++
C++ Дано символьная строка. Определить количество пробелов этой строке

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

Или воспользуйтесь поиском по форуму:
Assles
0 / 0 / 0
Регистрация: 03.01.2013
Сообщений: 7
08.01.2013, 15:17  [ТС]     Дана строка, нужно символ в этой строке заменить ее порядковым номером. #7
спасибо, выручили
Yandex
Объявления
08.01.2013, 15:17     Дана строка, нужно символ в этой строке заменить ее порядковым номером.
Ответ Создать тему
Опции темы

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