0 / 0 / 0
Регистрация: 12.03.2012
Сообщений: 22
1

Сдвиг символов строки вправо

20.09.2013, 09:08. Показов 15919. Ответов 7
Метки нет (Все метки)

собственно задача - сдвинуть строку на 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
void main()
{
    char a[66];
    char b[66];
    char l,c,y;
    int i=0;
    setlocale(LC_ALL,"");
    for (l='А'; l<='я'; l++)
    {
        a[i]=l;
        i++;
    }
    i=0;
    c='А';
    for (i=0;i<=66;i++)
    {
        y=c+2;
        b[i]=y;
        c++;
    }   
    cout<<b<<endl;
    system("pause");
}
беда в том, что первые 2 символа теряются, как их вернуть?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.09.2013, 09:08
Ответы с готовыми решениями:

Сдвиг строки вправо
Нужно написать программу по наследованию которая измеряет длину строки и сдвигает строку в право на...

Где и когда уместно применять операции << (сдвиг влево) и >> (сдвиг вправо)?
Кто может привести пример , когда нужно использовать операции: 1) &lt;&lt; сдвиг влево 2) &gt;&gt; сдвиг...

Сдвиг текста вправо
Помогите написать код к задаче: Мальчик Кирилл написал однажды на листе бумаги строчку, состоящую...

Циклический сдвиг вправо
Нужно сделать цеклический сдвиг машинного слова на 1 байт влево, через union и через побитовые...

7
:)
Эксперт С++
4772 / 3266 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
20.09.2013, 10:36 2
Есть стандартный алгоритм std::rotate
Возможная реализация по ссылке http://www.cplusplus.com/refer... hm/rotate/
0
Модератор
Эксперт С++
11994 / 9702 / 5874
Регистрация: 18.12.2011
Сообщений: 26,006
20.09.2013, 10:48 3
Цитата Сообщение от Нубик_я Посмотреть сообщение
беда в том, что первые 2 символа теряются, как их вернуть?
запомните их в промежуточной переменной, а потом вставьте в хвост.
0
60 / 60 / 7
Регистрация: 14.09.2013
Сообщений: 145
20.09.2013, 11:12 4
Нубик_я, что то слишком сложно у тебя. Вот чуток по-другому
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
#include <clocale>
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"");
    char a[64];
    int i=0;
    for (char l='А'; l<='я'; l++)
    {
        a[i]=l;
        i++;
    }
    cout<<a<<endl;
    for (i=63;i>1;i--)
    {
        a[i]=a[i-2];
    }
    a[0]=a[1]=' ';
 
    cout<<a<<endl;
    system("pause");
}
0
159 / 98 / 25
Регистрация: 07.03.2013
Сообщений: 510
Записей в блоге: 1
20.09.2013, 11:26 5
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
#include <clocale>
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
void main()
{
    setlocale(LC_ALL,"");
    char a[67]; //не забываем про символ конца строки
    char b[3];
    int i=0;
    for (char l='А'; l<='я'; l++)
    {
        a[i]=l;
        i++;
    }
     a[66]=0; //или a[66]='\0';
    cout<<a<<endl;
    b[0]=a[64];
    b[1]=a[65];
    b[2]=0;
    for (i=65;i>1;i--)
    {
        a[i]=a[i-2];
    }
    a[0]=b[0];
   a[1]=b[1];
 
    cout<<a<<endl;
    system("pause");
}
0
3 / 3 / 0
Регистрация: 04.10.2014
Сообщений: 40
04.10.2014, 22:09 6
Всем добрый день. Срочно нужна помощь. Кто подскажет, как выполнить такое задание?
"Ввести строки s1 и s2. Три последних символа строки s2 удалить, вставить в середину строки s1 и в полученной строке заменить все символы 'E' на 'EE'."
Вот моя программа, но работает она из рук вон неправильно - выводит только первые символы строки s1 после обработки. Вывод промежуточных результатов и конечных строк пока не делал. Помогите, очень срочно, сам уже две недели тружусь и ничего не выходит
Работаю в Borland C++ версия 3.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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
void main()
{const int max = 61;
 char s1[max+3], s2[max], cpy_s2[3];
 int i = 0;
 clrscr();
 printf("Vvedite stroku s1:\n");
 gets(s1);
 printf("Vvedite stroku s2:\n");
 gets(s2);
 int lens1 = strlen(s1); //zapis znachenia dliny stroki s1
 int lens2 = strlen(s2); //i s2
 if((lens2<3)||(lens1==0)||(lens2==0))
   {printf("\nOshibka vvoda strok!");
    printf("\nNazhmite Enter dla vixoda");
    getch();
   }
 else
     {
     {for(i = lens2-3; i<=lens2; i++) //cikl na poisk poslednix 3-x simvolov v "s2"
     {cpy_s2[i] = s2[i]; //kopirovanie 3-x simvolov v otdelniy massiv
      s2[i] = '\0'; //"udalenie" 3-x simvolov iz na4alnoi stroki "s2"
     }
     for(i = lens1/2; i<=lens1/2+3; i++)
    {s1[i+3] = s1[i];
    }
     for(i = lens1/2; i<=lens1/2+3; i++)
    {s1[i] = cpy_s2[i];
    }
    for(i = 0; i<=lens1; i++)
       {if(s1[i]=='E')
         s1[i] = 'EE';
       }
    printf("\nObrabotannaya stroka s1:\n");
    puts(s1);
    printf("Nazhmite Enter dla vixoda");
    getch();
      }
     }
}
0
0 / 0 / 0
Регистрация: 26.01.2021
Сообщений: 13
26.01.2021, 10:24 7
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
// есть библиотека  <iomanip>
 
#include <iostream>
#include <iomanip>
#include <conio.h>
 
 
using namespace std;
 
int main ()
 
{
 
     setlocale (LC_ALL, "");
 
 
   cout << setw(30) << " Привет ";
   cout << setw(10) << right << " Привет ";
 
 
 
 
 _getch ();
  return 0;
 
}
0
0 / 0 / 0
Регистрация: 26.01.2021
Сообщений: 13
28.04.2021, 10:13 8
void main()
{
char a[66];
char b[66];
char l,c,y;
int i=0;
setlocale(LC_ALL,"");
for (l='А'; l<='я'; l++)
{
a[i]=l;
i++;
}
i=0;
c='А';
for (i=0;i<=66;i++)
{
y= c + 2; // ЗДЕСЬ УБЕРИТЕ +2, ОСТАВЬТЕ ТОЛЬКО " с "
b[i]=y;
c++;
}
cout<<b<<endl;
system("pause");
}

Добавлено через 23 минуты
#include <iostream>
#include <iomanip>
#include <conio.h>


using namespace std;

void main()
{
char a[66];
char b[66];
char l, c, y;
int i = 0;
setlocale(LC_ALL, "");
for (l = 'А'; l <= 'я'; l++)
{
a[i] = l;
i++;
}
i = 0;
c = 'А';
for (i = 0; i <= 66; i++)
{
y = c;
b[i] = y;
c++;
}
cout << setw(3) << right << "" << b << endl; // Кавычки Делают Сдвиг

system("pause");

}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.04.2021, 10:13
Помогаю со студенческими работами здесь

Сдвиг числа вправо
Помогите, мне нужно реализовать машинный алгоритм умножения чисел. Первое число нужно сдвигать...

Циклический сдвиг массива вправо
дан двумерный массив MxN нужно осуществить поэлементный сдвиг вправо на 1 элемент

Реализовать циклический сдвиг вправо
Вот собственно мой код: #include &quot;pch.h&quot; #include &lt;iostream&gt; #include &quot;conio.h&quot; #include...

Сдвиг элементов массива вправо
Добрый вечер всем. У меня возник такой вопрос. Можно ли сдвинуть элементы массива вправо на одну...

Сдвиг массива вправо на K позиций
Даны натуральные числа N, K и массив из N целых чисел. Требуется, не используя дополнительные...

Побитовый сдвиг влево и вправо
Что выполнится быстрее - сдвиг влево или сдвиг вправо? И как замерить время выполнения каждой из...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru