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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Super GT
4 / 4 / 0
Регистрация: 23.12.2012
Сообщений: 131
#1

Вставка символов - C++

15.10.2013, 21:39. Просмотров 320. Ответов 1
Метки нет (Все метки)

"Дана строка. Если в ней попадается строчный символ - с обоих сторон от него вставить его же в верхнем регистре."

Я решительно не могу понять, как все это выглядит. Вернее, ясно, что для вставки символа нужно всю строку сдвинуть на одну позицию. Но вот с реализацией проблемы, никак не могу все это вместе соединить. И да, делать просто через цикл, без классов, конкатенации и пр.

Что получилось:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
main()
{
      int i, j;
      char str[] = "";
        cout << "Stroka: ";
        gets(str); 
 
   for (i = 0; i < strlen(str); i++) //анализ введенной строки по элементно
     {
         if (int(str[i]) >= 90 && int(str[i]) <= 122) //условие - соответствует ли код символа прописному
         {
           //цикл для вставки символа слева
            for (j = strlen(str); j < (strlen(str)+1); j--)
              { 
                 str[j+1] = str[i];
                 str[j] = char(int(str[i-32])); //переход в "верхний" аналог обрабатываемого символа
                 str[j+2] = char(int(str[i-32]));
              }
 
          }
     }
      
cout << "Otvet: " << str << "\n";
system("pause");
return 0; 
}
Код, к сожалению, кривой, и не работает. Буду рад, если кто подправит и/или предложит более простой вариант.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2013, 21:39     Вставка символов
Посмотрите здесь:

Разработать функцию, которая меняет слова, содержащие заданную комбинацию символов, на соответствующее количество символов # C++
Дана строка символов. Изменить строку – во всех словах, имеющих нечетное количество символов, средний символ удалить. C++
C++ Дан набор символов, среди которых есть двоеточие ‘:’. Определить, сколько символов ему предшествует
C++ Дана строка символов. Подсчитать общее число вхождений символов
Найти сочетание символов после другого сочетания символов C++
В строке символов установить пробелы вместо символов,номера позиций которых при делении на 6 дают в остатке 3 C++
Ввести строку символов. Найти количество неповторяющихся символов C++
С++. Вставка символов/пробелов C++
C++ Написать программу, которая удаляет из данного набора символов все вхождения символов S и s
Подсчет символов UTF-8. Считывание пробельных символов C++
Получить из данных строк S1 и S2 новую строку, содержащую первые N1 символов S1 и последние N2 символов S2 C++
Преобразовать заданные строки, согласно условию (сортировка и сравнение строк, вставка/удаление символов) C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1931 / 1540 / 141
Регистрация: 31.05.2009
Сообщений: 2,905
16.10.2013, 00:35     Вставка символов #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <cstring>
#include <cstddef>
#include <cctype>
#include <iostream>
 
int main()
{    
  using namespace std;
 
  char s[31];
  cout << "Input string:\n";
  cin.getline(s, 11);
 
  size_t n = strlen(s);
  size_t i = 0;
  while(i < n)
  {
    if(islower(s[i]))
    {
      n += 2;
      for(size_t j = n; j > i + 2; --j)
        s[j] = s[j - 2];
      s[i + 1] = s[i];
      s[i] = s[i + 2] = toupper(s[i]);
      i += 3;
    }
    else
    {
      ++i;
    }
  }
 
  cout << s << '\n';
}
Yandex
Объявления
16.10.2013, 00:35     Вставка символов
Ответ Создать тему
Опции темы

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