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

Отредактировать текст таким образом, чтобы все знаки препинания располагались в начале, за ним следовали цифры - C++

Восстановить пароль Регистрация
 
Vovanich13
1 / 1 / 0
Регистрация: 27.01.2014
Сообщений: 91
04.06.2014, 11:11     Отредактировать текст таким образом, чтобы все знаки препинания располагались в начале, за ним следовали цифры #1
Дано некоторый текст. Отредактировать его таким образом, чтобы все знаки препинания располагались в начале строки, за ним следовали цифра, а затем буквы.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.06.2014, 11:11     Отредактировать текст таким образом, чтобы все знаки препинания располагались в начале, за ним следовали цифры
Посмотрите здесь:

Преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых не превышает 1, а потом все остальные C++
Преобразовать массив таким образом, чтобы сначала располагались все положительные элементы, а потом все отрицательные C++
Преобразовать массив таким образом, чтобы сначала располагались все положительные элементы, а потом - все остальные C++
C++ Преобразовать массив таким образом чтобы сначала располагались все элементы равные нулю а потом остальные
C++ Преобразовать массив таким образом, чтобы сначала располагались все по- ложительные элементы, а потом все остальные
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
swag
3 / 3 / 1
Регистрация: 22.10.2012
Сообщений: 18
04.06.2014, 14:29     Отредактировать текст таким образом, чтобы все знаки препинания располагались в начале, за ним следовали цифры #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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream>
using namespace std;
 
int main()
{
    char str[256]="I love programming, football!!1", str1[256]="";
    int i=0, c, j=0;
 
    while(str[i]!='\0')
    {
        c=str[i];
        if (c==33 || c==44 || c==45 || c==46 || c==58 || c==59 || c==63)
        {
            str1[j]=str[i];
            j++;
        }
        i++;
    }
    str1[j]=' ';
    j++;
    i=0;
 
    while(str[i]!='\0')
    {
        c=str[i];
        if (c>47 && c<58)
        {
            str1[j]=str[i];
            j++;
        }
        i++;
    }
    str1[j]=' ';
    j++;
    i=0;
 
    while(str[i]!='\0')
    {
        c=str[i];
        if ((c>64 && c<91) || (c>96 && c<123))
        {
            str1[j]=str[i];
            j++;
        }
        i++;
    }
 
    cout<<str<<"\n";
    cout<<str1<<"\n";
    return 0;
}
Mr.X
Эксперт С++
 Аватар для Mr.X
2799 / 1575 / 246
Регистрация: 03.05.2010
Сообщений: 3,656
04.06.2014, 15:28     Отредактировать текст таким образом, чтобы все знаки препинания располагались в начале, за ним следовали цифры #3
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
/////////////////////////////////////////////////////////////////////////////////////////.
//Дано некоторый текст. Отредактировать его таким образом, чтобы все знаки препинания 
//располагались в начале строки, за ним следовали цифра, а затем буквы.
/////////////////////////////////////////////////////////////////////////////////////////.
#include <algorithm>
#include <cctype>
#include <conio.h>
#include <iostream>
#include <string>
/////////////////////////////////////////////////////////////////////////////////////////
typedef std::string     T_str;
/////////////////////////////////////////////////////////////////////////////////////////
int  main()
{
    std::locale::global(std::locale(""));
 
    T_str   s   (
                    "Весомый вклад в становление теории чисел оказали пифагорейцы, Евклид и Диофант. "
                    "Пифагорейцы рассматривали только целые положительные числа и полагали число собранием единиц. "
                    "Единицы были неделимы и располагались в виде правильных геометрических тел. Пифагорейцам "
                    "характерно определение «фигурных чисел» («треугольных», «квадратных» и других). Изучая свойства "
                    "чисел, они разбили их на чётные и нечётные, простые и составные. Вероятно именно пифагорейцы "
                    "с помощью только признака делимости на два смогли доказать, что если 1+2+...+2^n=p — простое число, "
                    "то 2^n p — совершенное число. Доказательство изложено в «Началах» Евклида (IX, 36). только в XVIII веке "
                    "Эйлер доказал, что других чётных совершенных чисел не существует, а вопрос о бесконечности числа "
                    "совершенных чисел до сих пор не решён. Также пифагорейцы нашли бесконечное множество целых решений "
                    "уравнения ~x^2+y^2=z^2, так называемых пифагоровых троек, и вывели для них общую формулу[7]."
                );
 
    auto    it  =   std::partition
                        (
                            s.begin (),
                            s.end   (),
                            ispunct
                        );
 
    std::partition
        (
            it,
            s.end(),
            isdigit
        );
 
    std::cout   <<  s
                <<  std::endl;
 
    getch();
}
Vovanich13
1 / 1 / 0
Регистрация: 27.01.2014
Сообщений: 91
04.06.2014, 21:39  [ТС]     Отредактировать текст таким образом, чтобы все знаки препинания располагались в начале, за ним следовали цифры #4
спасибо, можно сделать эту задачу как-то проще?? если да то сделайте буду благодарен!
gazlan
2857 / 1805 / 271
Регистрация: 27.08.2010
Сообщений: 4,888
Записей в блоге: 1
04.06.2014, 22:55     Отредактировать текст таким образом, чтобы все знаки препинания располагались в начале, за ним следовали цифры #5
Цитата Сообщение от Vovanich13 Посмотреть сообщение
как-то проще
qsort()

Алфавит, правда придется переопределить, так чтобы "0123456789" и ":;<=>?" поменялись местами.
Yandex
Объявления
04.06.2014, 22:55     Отредактировать текст таким образом, чтобы все знаки препинания располагались в начале, за ним следовали цифры
Ответ Создать тему
Опции темы

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