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

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

Войти
Регистрация
Восстановить пароль
 
green_apple
2 / 2 / 0
Регистрация: 24.06.2012
Сообщений: 64
#1

Напишите программу, которая позволяет ввести строку символов - C++

25.06.2012, 20:09. Просмотров 673. Ответов 3
Метки нет (Все метки)

Напишите программу, которая позволяет ввести строку символов, и вывести ее в обратном порядке, заменяя одиночные пробелы двойными.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.06.2012, 20:09
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Напишите программу, которая позволяет ввести строку символов (C++):

Напишите программу, которая позволяет пользователю ввести число, а затем генерирует таблицу размером 20 строк на 10 столбцов - C++
вот задача Решения к упражнениям, помеченным знаком *, можно найти в приложении Ж. *1. Предположим, вы хотите создать таблицу...

Напишите функцию, которая определяет, можно ли из символов, входящих в строку А, составить строку В - C++
Помогите с задачей, пожалуйста. Даны строки А и В. Напишите функцию, которая определяет, можно ли из символов, входящих в А, составить...

Составить программу, которая позволяет ввести с клавиатуры шестнадцатеричное число и записать его в переменную a, выполнить требуемую проверку. - C++
Составить программу, которая позволяет ввести с клавиатуры шестнадцатеричное число и записать его в переменную a типа unsigned. Выполнить...

Напишите рекурсивную функцию, которая инвертирует строку символов - C++
Помогите пожалуйста написать Программу Напишите рекурсивную функцию, которая инвертирует строку символов.

Напишите программу, которая просит ввести имя пользователя - C++
Напишите простую программу, которая просит ввести имя пользователя. Например, в базе есть 2 имени - ivan и vasia. Если мы введем ivan, то...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zitxbit
Master C/C++
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
25.06.2012, 21:34 #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
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
 
int main()
{
    char* psz = new char[256];
    printf("str = "); gets(psz);
 
    printf("%s\n",psz);
 
    for (int i = strlen(psz)-1; i >= 0; i--)
    {
        int k = strlen(psz)-1;
        while(isspace(psz[i]) && k >= i)
             psz[k+1] = psz[k--];
    }
 
    for (int s = strlen(psz)-1; s >= 0; s--)
        printf("%c",psz[s]);
    printf("\n");
 
    _getch();
 
    return 0;
}
http://liveworkspace.org/code/3d6f69...0a0efee3b23c14
0
-=ЮрА=-
Заблокирован
Автор FAQ
26.06.2012, 13:29 #3
Цитата Сообщение от green_apple Посмотреть сообщение
Напишите программу, которая позволяет ввести строку символов, и вывести ее в обратном порядке, заменяя одиночные пробелы двойными.
- думаю так будет проще всего
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
44
45
46
47
48
49
50
#include <iostream>
using namespace std;
 
//ГґГіГ*êöèÿ âîçâðГ*ГІГЁГІ äëèГ*Г*Гі ñòðîêè
int getStrLen(char * str)
{
    int sLen = 0;
    while(str[sLen] != '\0')
        sLen = sLen + 1;
    return sLen;
}
 
int main()
{
    char input[1024] = {0};//Áóäåò ñîäåðæГ*ГІГј Г*Г*ГёГі èñõîäГ*ГіГѕ ñòðîêó
    char output[1024]= {0};//Áóäåò ñîäåðæГ*ГІГј Г*Г*ГёГі âûõîäГ*ГіГѕ ñòðîêó
    cout<<"Enter text : ";
    cin.getline(input,1023);//Ââîäèì ñòðîêó Г± ïðîáåëГ*ìè
    int sLen = getStrLen(input);
    bool isSpace = false;//ÔëГ*ГЈ ïðîáåëГ*
    for(int i = 0, j = 0; i < sLen; i++, j++)
    {
        //Åñëè âñòðåòèëè îäèГ*î÷Г*ûé ïðîáåë
        if(input[(sLen - 1) - i] == ' ')
        {
            if(!isSpace)
                isSpace = true;
            else//Âñòðåòèëè Г¬Г*îæåñòâåГ*Г*ûé ïðîáåë
            {
                for(;i < sLen && input[(sLen - 1) - i] == ' '; i++, j++)
                    output[j] = input[(sLen - 1) - i];
                isSpace = false;
            }
 
        }
        else
        {
            if(isSpace)//Âñòðåòèëè îäèГ*î÷Г*ûé ïðîáåë
            {
                output[j] = ' ';//äîáГ*ëÿåì Гў âûõîäГ*ГіГѕ ñòðîêó ГҐГ№Вё îäèГ* ïðîáåë
                j = j + 1;
            }
            isSpace = false;
        }
        output[j] = input[(sLen - 1) - i];
    }
    cout<<"Transformed text : "<<output<<endl;
    system("pause");
    return 0;
}
0
Миниатюры
Напишите программу, которая позволяет ввести строку символов  
-=ЮрА=-
Заблокирован
Автор FAQ
26.06.2012, 16:01 #4
Немного посидев решил исключить внутренний цикл
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
for(;i < sLen && input[(sLen - 1) - i] == ' '; i++, j++)
* * * * * * * * * * output[j] = input[(sLen - 1) - i];
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
44
45
46
47
#include <iostream>
using namespace std;
 
//ГґГіГ*êöèÿ âîçâðГ*ГІГЁГІ äëèГ*Г*Гі ñòðîêè
int getStrLen(char * str)
{
    int sLen = 0;
    while(str[sLen] != '\0')
        sLen = sLen + 1;
    return sLen;
}
 
int main()
{
    char input[1024] = {0};//Áóäåò ñîäåðæГ*ГІГј Г*Г*ГёГі èñõîäГ*ГіГѕ ñòðîêó
    char output[1024]= {0};//Áóäåò ñîäåðæГ*ГІГј Г*Г*ГёГі âûõîäГ*ГіГѕ ñòðîêó
    cout<<"Enter text : ";
    cin.getline(input,1023);//Ââîäèì ñòðîêó Г± ïðîáåëГ*ìè
    int sLen = getStrLen(input);
    bool isSpace     = false;//ÔëГ*ГЈ ïðîáåëГ*
    bool isNumerous  = false;//ÔëГ*ГЈ Г¬Г*îæåñòâåГ*Г*îãî ïðîáåëГ*
    for(int i = 0, j = 0; i < sLen; i++, j++)
    {
        //Åñëè âñòðåòèëè îäèГ*î÷Г*ûé ïðîáåë
        if(input[(sLen - 1) - i] == ' ')
        {
            if(!isSpace)
                isSpace = true;
            else//Âñòðåòèëè Г¬Г*îæåñòâåГ*Г*ûé ïðîáåë
                isNumerous = true;
        }
        else
        {
            if(isSpace && !isNumerous)//Âñòðåòèëè îäèГ*î÷Г*ûé ïðîáåë
            {
                output[j] = ' ';//äîáГ*ëÿåì Гў âûõîäГ*ГіГѕ ñòðîêó ГҐГ№Вё îäèГ* ïðîáåë
                j = j + 1;
            }
            isSpace    = false;
            isNumerous = false;
        }
        output[j] = input[(sLen - 1) - i];
    }
    cout<<"Transformed text : "<<output<<endl;
    system("pause");
    return 0;
}
0
Миниатюры
Напишите программу, которая позволяет ввести строку символов  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.06.2012, 16:01
Привет! Вот еще темы с ответами:

Написать программу, которая вводит с клавиатуры строку не более 100 символов, еще одну строку не более 50 символов и выводит на экран позиции вхождени - C++
Задание: Написать программу, которая вводит с клавиатуры строку не более 100 символов, еще одну строку не более 50 символов и выводит на...

Напишите программу, которая приглашает пользователя ввести его имя и фамилию - C++
Напишите программу, которая приглашает пользователя ввести его имя и фамилию, а затем построит, сохранит и отобразит третью строку,...

Напишите программу, которая приглашает пользователя ввести три результата забега на 40 ярдов - C++
Напишите программу, которая приглашает пользователя ввести три результата забега на 40 ярдов (или 40 метров, если желаете) и затем...

Напишите программу, которая сокращает слово до четырех символов - C++
Напишите программу, которая сокращает слово до четырех символов.


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

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

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