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

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

Восстановить пароль Регистрация
 
Super GT
4 / 4 / 0
Регистрация: 23.12.2012
Сообщений: 131
15.10.2013, 21:39     Вставка символов #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++ Дана строка символов. Подсчитать общее число вхождений символов
Дан текст, содержащий 30 символов. Подсчитать количество вхождений символов А и Б. C++
Найти сочетание символов после другого сочетания символов C++
Ввести строку символов. Найти количество неповторяющихся символов C++
С++. Вставка символов/пробелов C++
C++ Написать программу, которая удаляет из данного набора символов все вхождения символов S и s

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
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     Вставка символов
Ответ Создать тему
Опции темы

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