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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.94
lera8
631 / 214 / 26
Регистрация: 03.11.2009
Сообщений: 488
#1

Вставить после каждого знака пунктуации в символьном массиве знак табуляции - C++

08.11.2009, 22:49. Просмотров 1989. Ответов 11
Метки нет (Все метки)

Помогите пожалуйста решить задачи на языке Си
1. Вставить после каждого знака пунктуации в символьном массиве знак табуляции.
2. Дан целочисленный массив, определить серии максимальной и минимальной длины и поменять их местами, если их несколько, то первые из них.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.11.2009, 22:49     Вставить после каждого знака пунктуации в символьном массиве знак табуляции
Посмотрите здесь:

C++ Вставить после каждого символа «.» один символ « » (пробел), если после точки нет пробела.
Заменить каждую букву и знак пунктуации тем, который находится непосредственно слева от него на клавиатуре C++
Удалить пробелы и после каждого 5 элемента поставить знак вопроса C++
В массиве вставить после каждого второго элемента минимальное непростое число C++
C++ Знак табуляции между числами
В целочисленном массиве после каждого четного числа вставить максимальный элемент массива C++
Дан массив строк. Написать функцию, которая после каждого знака пунктуации будет ставить пробел C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
insolent
826 / 347 / 15
Регистрация: 30.01.2009
Сообщений: 1,204
09.11.2009, 02:13     Вставить после каждого знака пунктуации в символьном массиве знак табуляции #2
Цитата Сообщение от lera8 Посмотреть сообщение
Вставить после каждого знака пунктуации в символьном массиве знак табуляции.
Возможно как-то
так
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
/*
    Вставить после каждого знака пунктуации в символьном массиве знак табуляции.
*/
 
//#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
////////////////////////////////////////////////////////////////////
int main(int argc, char* argv[])
{
        char *ch = new char[80];
    string punct = ",-.:;";
        size_t found;
        cout << "Enter a string :>";
    cin.getline(ch,80);
    string str(ch,strlen(ch));
    found = str.find_first_of(punct);
    while (found != string::npos)
    {
        str.insert(found+1,"\t");
        found = str.find_first_of(punct,found+1);
    }
        strcpy(ch,str.c_str());
    cout << ch << endl;
    getchar();
    return 0;
}
lera8
631 / 214 / 26
Регистрация: 03.11.2009
Сообщений: 488
09.11.2009, 16:42  [ТС]     Вставить после каждого знака пунктуации в символьном массиве знак табуляции #3
спасибо
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
09.11.2009, 16:53     Вставить после каждого знака пунктуации в символьном массиве знак табуляции #4
Цитата Сообщение от lera8 Посмотреть сообщение
определить серии максимальной и минимальной длины
не подскажете что это поподробнее, если можно то приведите пример
ISergey
Maniac
Эксперт С++
1347 / 880 / 52
Регистрация: 02.01.2009
Сообщений: 2,645
Записей в блоге: 1
09.11.2009, 16:54     Вставить после каждого знака пунктуации в символьном массиве знак табуляции #5
на языке Си
insolent, ваш код уж больно далек от Си.
Андрейка
419 / 223 / 27
Регистрация: 25.03.2009
Сообщений: 744
09.11.2009, 16:55     Вставить после каждого знака пунктуации в символьном массиве знак табуляции #6
valeriikozlov, это скорее всего подполседовательность одинаковых чисел максимальной длины
lera8
631 / 214 / 26
Регистрация: 03.11.2009
Сообщений: 488
09.11.2009, 16:57  [ТС]     Вставить после каждого знака пунктуации в символьном массиве знак табуляции #7
Серия-это последовательность одинаковых элементов массива. Например, дан массив:1 1 3 2 2 2, где 2 2 2-это серия максимальной длины, а 3 - серия минимальной длины.
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
09.11.2009, 18:06     Вставить после каждого знака пунктуации в символьном массиве знак табуляции #8
Андрейка, я просто далек на самом деле от студенческих понятий (особенно от тех, которые не несут в себе "логического" понятия)
lamila
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 3
10.11.2009, 01:48     Вставить после каждого знака пунктуации в символьном массиве знак табуляции #9
Доброй ночи всем
easybudda
Эксперт С++
9441 / 5464 / 926
Регистрация: 25.07.2009
Сообщений: 10,485
10.11.2009, 04:03     Вставить после каждого знака пунктуации в символьном массиве знак табуляции #10
Цитата Сообщение от lera8 Посмотреть сообщение
Вставить после каждого знака пунктуации в символьном массиве знак табуляции.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <ctype.h>
 
int main(){
    char array[] = "aaa,bbb.ccc;ddd";
    char *p;
    
    for ( p = array; *p; p++ ){
        putchar(*p);
        if ( ispunct(*p) )
            putchar('\t');
    }
    putchar('\n');
    return 0;
}
valeriikozlov
Эксперт C++
4663 / 2489 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
10.11.2009, 06:40     Вставить после каждого знака пунктуации в символьном массиве знак табуляции #11
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include <stdlib.h>
#include <time.h>
#define  SIZE_ARRAY 10
int main ()
{
        int A[SIZE_ARRAY], i, min_i, min_kol, max_i, max_kol=1, temp_i, temp_kol, temp;
        bool fl;
        srand (time(0));
        printf("Ishodn massiv:\n");
        for(i=0; i<SIZE_ARRAY; i++)
        { A[i]=rand()%5;
          printf(" %i",A[i]);
        }
        printf("\n");
        // ïîèñê Г¬Г*ГЄГ±
        for(i=0; i<SIZE_ARRAY-1; i++)
        {
            temp_kol=1;
            fl=false;
            while(A[i]==A[i+1])
            {
                temp_kol++;
                if(!fl)
                {
                    fl=true;
                    temp_i=i;
                }
                i++;
            }
            if(max_kol<temp_kol)
            {
                max_kol=temp_kol;
                max_i=temp_i;
            }
        }
        min_i=max_i;
        min_kol=max_kol;
        for(i=0; i<SIZE_ARRAY-1; i++)
        {
            temp_kol=1;
            fl=false;
            if(A[i]!=A[i+1])
            {
                min_kol=1;
                min_i=i;
                i=SIZE_ARRAY;
            }
            while(A[i]==A[i+1])
            {
                temp_kol++;
                if(!fl)
                {
                    fl=true;
                    temp_i=i;
                }
                i++;
            }
            if(min_kol>temp_kol)
            {
                min_kol=temp_kol;
                min_i=temp_i;
            }
        }
// ïåðåìåГ*Г* ìåñòГ*ìè
    if(min_i<max_i)
        for(i=0; i<max_kol; i++)
        {
            if(i<min_kol)
            {
            temp=A[min_i+i];
            A[min_i+i]=A[max_i+i];
            A[max_i+i]=temp;
            }
            else
            {
                temp=A[max_i+i];
                for(int j=max_i+i; j>min_i+i; j--)
                    A[j]=A[j-1];
                A[min_i+i]=temp;
            }
        }
    else
        for(i=0; i<max_kol; i++)
        {
            if(i<min_kol)
            {
            temp=A[min_i+i];
            A[min_i+i]=A[max_i+i];
            A[max_i+i]=temp;
            }
            else
            {
                temp=A[max_i+i];
                for(int j=max_i+i; j<min_i+min_kol-i; j++)
                    A[j]=A[j+1];
                A[min_i+min_kol-i]=temp;
            }
        }
        printf("Poluch massiv:\n");
        for(i=0; i<SIZE_ARRAY; i++)
           printf(" %i",A[i]);
        printf("\n");
 getchar();
 return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2009, 22:36     Вставить после каждого знака пунктуации в символьном массиве знак табуляции
Еще ссылки по теме:

C++ В целочисленном массиве после каждого четного числа вставить максимальный элемент массива
C++ В массиве после каждого числа, состоящего из одинаковых цифр, вставить еще одно такое же число
C++ В выражении вместо каждого знака вопрос записать знак одной из арифметических операций
C++ Как вставить пробел после знака препинания, если его там нет?
C++ Как сделать так, чтобы после каждого знака препинания в строке стоял пробел?

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

Или воспользуйтесь поиском по форуму:
lera8
631 / 214 / 26
Регистрация: 03.11.2009
Сообщений: 488
10.11.2009, 22:36  [ТС]     Вставить после каждого знака пунктуации в символьном массиве знак табуляции #12
БОльшое всем спасибо за помощь!
Yandex
Объявления
10.11.2009, 22:36     Вставить после каждого знака пунктуации в символьном массиве знак табуляции
Ответ Создать тему
Опции темы

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