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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Aleksei555
0 / 0 / 0
Регистрация: 11.01.2012
Сообщений: 5
#1

Сформировать строку вдвое большей длины, где каждый символ дополняется пробелом - C++

18.01.2012, 16:46. Просмотров 1113. Ответов 8
Метки нет (Все метки)

Задание: ввести строку символов. Сформировать строку вдвое большей длины, где каждый символ предворяется пробелом. Вывести полученную строку.
Вот код программы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <conio.h>
#include <iostream.h>
#include <string.h>
 
void main()
{
clrscr();
char x[100];
cout << "Input: ";
cin >> x;
for (int i=strlen(x)-1;i>=0;i--)
{
*(x+2*i+1)=*(x+i);
*(x+2*i)=' ';
}
for (int i=0;i<strlen(x)-1;i++)
{
cout << *(x+i);
}
getch();
}
Нужно переделать программу так чтобы каждый символ предворялся не пробелом, а его порядковым номером.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2012, 16:46
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сформировать строку вдвое большей длины, где каждый символ дополняется пробелом (C++):

Сформировать строку вдвое большей длины - C++
Помогите пожайста отредактировать программу: Задание: ввести строку символов. Сформировать строку вдвое большей длины, где каждый символ...

Сформировать новую строку повторив каждый символ заданной строки дважды - C++
1. Дана строка символов. Сформировать новую строку, повторив каждый символ заданной строки дважды, начиная с конца строки (если заданная...

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

Преобразовать строку, удалив каждый символ «*» и повторив каждый символ, отличный от «*» - C++
Дана строка. Преобразовать ее, удалив каждый символ «*» и повторив каждый символ, отличный от «*». Помогите пожалуйста.

Преобразовать строку, удалив каждый символ * и повторив каждый символ, отличный от * - C++
Дана строка. Преобразовать ее, удалив каждый символ * и повторив каждый символ, отличный от *. Помогите решить, писал тоже самое на...

Преобразовать строку, удалив каждый символ * и повторив каждый символ, отличный от * - C++
Кто может решить задачки по С++? Решите плиз 1. Дана строка. Указать те слова, которые содержат хотябы одну букву k. 2. Дана строка,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
18.01.2012, 16:58 #2
Так?
C++
1
2
3
for ( int i = 0 ; s[i] ; ++i )
    std::cout << " " << s[i];
std::cout << std::endl;
0
-=ЮрА=-
Заблокирован
Автор FAQ
18.01.2012, 17:09 #3
Цитата Сообщение от Aleksei555 Посмотреть сообщение
Задание: ввести строку символов. Сформировать строку вдвое большей длины, где каждый символ предворяется пробелом. Вывести полученную строку.
- вот очень просто на плюсах
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <cstdlib>
using namespace std;
 
int main()
{
    char str[1024] = {0};//ГЃГіГґГҐГ° äëÿ ñòðîêè
    char buf[2048] = {0};//ГЃГіГґГҐГ° äëÿ ñòðîêè âäâîå áîëüøåé äëèГ*Г*Г»
    cout<<"Enter text\n";
    cin.getline(str,1024);
    long i, sLen = strlen(str);
    for(i = 0; i < sLen; i++)
    {
        buf[i*2]     = ' ';
        buf[i*2 + 1] = str[i];
    }
    cout<<"Transformed text\n"
        <<buf<<endl;
    system("pause");//ñòîï-òî÷êГ* - âìåñòî getch
    return 0;
}
0
Миниатюры
Сформировать строку вдвое большей длины, где каждый символ дополняется пробелом  
kravam
быдлокодер
1695 / 882 / 45
Регистрация: 04.06.2008
Сообщений: 5,459
18.01.2012, 17:15 #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 <conio.h>
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
 
 
int main() {
 char x[100];
 cout << "Input: ";
 cin >> x;
 
 int temp= strlen(x)- 1;
 x[strlen(x)*2]= 0;
 
 for (int i=strlen(x)-1;i>=0;i--){
  *(x+ 2*i +1)= *(x+i);
  *(x+ 2*i)= (char)(abs(temp- i)+ 48);
 }
 printf ("%s\n", x);
 
 
 getch();
}
Добавлено через 42 секунды
Но ограничения для дураков необходимы всё же.
1
-=ЮрА=-
Заблокирован
Автор FAQ
18.01.2012, 17:21 #5
Вот вариант без буфера - преобразуем исходную строку
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <cstdlib>
using namespace std;
 
int main()
{
    char str[2024] = {0};//ГЃГіГґГҐГ° äëÿ ñòðîêè
    cout<<"Enter text(less than 1024 chars)\n";
    cin.getline(str,1024);
    long i, sLen = strlen(str);
    for(i = 0; i < 2*sLen; i += 2)
    {
        memmove(&str[i + 1], &str[i], sLen - i/2);
        str[i] = ' ';
    }
    cout<<"Transformed text\n"
        <<str<<endl;
    system("pause");//ñòîï-òî÷êГ* - âìåñòî getch
    return 0;
}
PS:Функционал аналогичен функционалу алгоритма выше...
1
Миниатюры
Сформировать строку вдвое большей длины, где каждый символ дополняется пробелом  
-=ЮрА=-
Заблокирован
Автор FAQ
18.01.2012, 17:29 #6
Цитата Сообщение от kravam Посмотреть сообщение
Ребята! Научите меня уже редактировать коды в сообщениях!
- нажми кнопку Правка, внеси коррективы, а затем нажми сохранить изменения. Редактировать можно первые 10 мин после выдачи поста, потом только через модера...
0
Миниатюры
Сформировать строку вдвое большей длины, где каждый символ дополняется пробелом  
rangerx
1933 / 1542 / 141
Регистрация: 31.05.2009
Сообщений: 2,912
18.01.2012, 17:34 #7
Цитата Сообщение от Aleksei555 Посмотреть сообщение
Нужно переделать программу так чтобы каждый символ предворялся не пробелом, а его порядковым номером.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <string.h>
#include <stddef.h>
 
int main()
{
    int i, n;
    char s1[51] = "", s2[150] = "";
    char* ps2 = s2;
 
    printf("string: ");
    scanf("%50[^\n]", s1);
 
    for(i = 0; s1[i] != '\0' ; ++i)
    {
        sprintf(ps2, "%d%c%n", i + 1, s1[i], &n);
        ps2+= n;
    }
 
    printf("result: %s", s2);
    return 0;
}
1
kravam
быдлокодер
1695 / 882 / 45
Регистрация: 04.06.2008
Сообщений: 5,459
18.01.2012, 17:39 #8
-=ЮрА=-, у меня при редактировании кодов получается такая грязь:
Код C++
1
2
3
4
5
6
7
#include <stdio.h> int main () { //изменения
printf ("hello, word!\n"); getchar (); return 0; }


Добавлено через 58 секунд
И хоть ты тресни
0
-=ЮрА=-
Заблокирован
Автор FAQ
18.01.2012, 17:46 #9
Цитата Сообщение от kravam Посмотреть сообщение
у меня при редактировании кодов получается такая грязь:
- возможно что-то с яваскриптом у тебя или редактируешь цитаты, тут не знаю что ответить, спроси у админов...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.01.2012, 17:46
Привет! Вот еще темы с ответами:

Преобразовать строку, вырезав каждый символ "*" и повторив каждый символ, отличный символ "*" - C++
Здравствуйте,уважаемые форумчане!Помогите пожалуйста с написанием программ-а то завтра сдать уже надо... Препод ставит такие требования: ...

Выводить строку, сокращая каждый раз на 1 символ, пока в строке не останется 1 символ - C++
' Напишите программу, которая вводит строку и выводит её, сокращая каждый раз на 1 символ до тех пор, пока в строке не останется 1 символ....

Преобразовать строку, удалив каждый символ "*" и повторив каждый символ, отличный от "*" - C++
Дана строка. Преобразовать ее, удалив каждый символ * и повторив каждый символ. Отличный от *. Помогите,пожалуйста,найти ошибку в...

Дан символ С и строка S. Перед каждым вхождением C в строку S вставить строку S. Где ошибка? - C++
#include&lt;iostream&gt; #include&lt;conio.h&gt; #include&lt;cmath&gt; #include&lt;string&gt; using namespace std; int main() { string s,s0; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.01.2012, 17:46
Ответ Создать тему
Опции темы

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