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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Timif
Сообщений: n/a
#1

Работа со строками в (С\С++) визуал - C++

05.06.2009, 01:10. Просмотров 1289. Ответов 4
Метки нет (Все метки)

Помогите написать программу,которая из произвольной строки(ее можно сделать как типизированную константу: например ААААВВВВВССССХХХХ) удаляет повторно встречающиеся символы. Спасибо
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2009, 01:10     Работа со строками в (С\С++) визуал
Посмотрите здесь:

Работа со строками - C++
Даны два слова. Для каждой буквы первого слова определить, входит ли она во второе слово. Повторяющиеся буквы первого слова не...

Работа со строками в c++ - C++
Всем доброго времени суток! Помогите пожалуйста в решении проблемы: не могу(не знаю) как работать с текстовым файлом. У меня задача при...

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

Работа со строками - C++
Всем привет. Есть такой код void makeStr() { std::string testStr = "Take String"; char *ch_arr =...

Работа со строками в СИ++ - C++
Парни помагите напишите прогу если не втягость заранее благодарю))) Вот условие: Дана строка. Преобразовать ее, удалив каждый символ *...

Работа со строками - C++
char *B = new char ; cout << "Введите текст произвольной длины: " ; cin.getline( B, 50); cout << "Введенный текст: " << B; ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
08.09.2009, 11:18     Работа со строками в (С\С++) визуал #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
#include <windows.h>
#include <stdio.h>
 
char * str = (char *)malloc(sizeof(char));
//удаляет из строки одинаковые символы
//т.е если строка содержит одинаковые символы
//то будут удалены все одинаковые последующие символы 
// кроме 1-го найденного
char * samerepl(char * str);
//удаляет из строки все последующие символы ch 
//после первого найденного ch
char * charrepl(char * str, char ch);
 
void main()
{
    int sLen = 0;
    printf("Enter string :\r\n");
    char ch = getchar();
    while(ch != '\n')
    {
        str[sLen] = ch;
        sLen++;
        str = (char *)realloc
            (
                str,
                (sLen + 1)*sizeof(char)
            );
        ch = getchar();
    }
    str[sLen] = '\0';
    printf("Move same chars :\r\n");
    printf("%s\r\n",samerepl(str));
    printf("Enter new string press NUM1\r\n");
    ch = getchar();
    if(ch == '1')
    {
        ch = getchar();
        main();
    }
}
 
char * samerepl(char * str)
{
    char ch;
    int sLen = strlen(str);
    if(0 < sLen)
    {
        ch = str[0];
        for(int i = 0; i < strlen(str); i++)
        {
            charrepl(str, ch);
            ch = str[i];
        }
    }
    return str;
}
 
char * charrepl(char * str, char ch)
{
    int chPos = -1,i;
    int sLen = strlen(str);
    char * chBuf;
    if(0 < sLen)
    {
        chBuf = strchr(str,ch);
        if(chBuf)
        {
            chBuf++;
            while((chBuf = strchr(chBuf,ch)))
            {
                chPos = strlen(str) - strlen(chBuf);
                for(i = chPos; i < sLen; i++)
                    str[i] = str[i + 1];
                chBuf++;
                sLen--;
                str[sLen] = '\0';
            }
        }
    }
    return str;
}
Изображения
 
Rififi
2359 / 1054 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
08.09.2009, 12:21     Работа со строками в (С\С++) визуал #3
C++
1
2
3
4
#include <string>
#include <algorithm>
std::string s = "ААААВВВВВССССХХХХ";
s.erase(std::unique(s.begin(), s.end()), s.end());
Gravity
562 / 556 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
08.09.2009, 12:58     Работа со строками в (С\С++) визуал #4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <string.h>
int main(void)
{
    char s[256];
    int i, j, k;
    
    printf("Enter string: ");
    scanf("%255s", s);
    for(i = 0; s[i] != '\0'; i++)
        for(j = i+1; s[j] != '\0'; j++)
            if(s[j] == s[i]) {
                for(k = j; s[k] == s[j]; k++)
                    ;
                memmove(s+j, s+k, strlen(s+j)+1);       
            }
    printf("Result: %s\n", s);
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.11.2009, 21:59     Работа со строками в (С\С++) визуал
Еще ссылки по теме:

Работа со строками C++ - C++
Решил посвятить этой проблеме отдельную тему. В попытке написать ответ к этой задаче на С++ запнулся на работе со строками. Собственно...

Работа с строками - C++
Здравствуйте! Есть строка (предложение) надо убрать все пробелы, в т. ч. в начали конце и получить количество слов в этом предложении. ...

Работа со строками - C++
Дан набор слов, разделенных точкой с запятой &quot;;&quot;. Набор заканчивается двоеточием &quot;:&quot;. Определить, сколько в нем слов, заканчивающихся...

Работа со строками - C++
Задание &quot;Есть строка, состоящая из слов, разделенных любым количеством пробелов. При введении русского текста, пользователь забыл...

Работа со строками - C++
#include &quot;Stdafx.h&quot; #include &quot;conio.h&quot; using namespace std; int main(){ const char* a = {&quot;000&quot;,&quot;111&quot;,&quot;222&quot;,&quot;333&quot;}; const char b...

Работа со строками - C++
Дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных (маленьких) латинских букв; между соседними...


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

Или воспользуйтесь поиском по форуму:
Nevermore
0 / 0 / 0
Регистрация: 25.11.2009
Сообщений: 7
28.11.2009, 21:59     Работа со строками в (С\С++) визуал #5
как можно переделать последнюю программу, чтоб она допускала произвольное количество пробелов между слов и удаляла повторно встречающиеся символы в каждом слове , а не во всём предложении ?
Yandex
Объявления
28.11.2009, 21:59     Работа со строками в (С\С++) визуал
Ответ Создать тему
Опции темы

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