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

Удаление из строки повторяющихся элементов (через функцию) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Код завершения процесса http://www.cyberforum.ru/cpp-beginners/thread1135977.html
Как можно узнать с каким кодом завершился процесс (код, который он ретурнит из main)? OC: Windows
C++ Таблица футбольного чемпионата Всем привет, нужна помощь. Таблица футбольного чемпионата задана в виде двумерного массива из n строк и n столбцов, в котором все элементы, принадлежащие главной диагонали, равны нулю, а каждый... http://www.cyberforum.ru/cpp-beginners/thread1135960.html
сортировка слов vector C++
Добрый день, условие задачи: Все слова исходного файла input.txt записать в файл output.txt без повторений, расположив их в порядке возрастания длины слов. Использовать STL. вот мой код,...
C++ Определить попадет ли точка в круг?
Определить,попадает ли точка M(x,y) в круг с радиусом R с центром в точке О(1,2). Значение радиуса и координаты X и Y ввести при помощи INPUT.txt. Выходной файл OUTPUT.txt должен содержать true, если...
C++ Ошибка записи в файл на рабочем столе http://www.cyberforum.ru/cpp-beginners/thread1135890.html
Пытаюсь записать предложение на файл созданный на рабочем столе но не получается #include <fstream> using namespace std; int main() { ofstream fail("fail.txt"); if(!fail.is_open()) ...
C++ Для заданного числа вычислить сумму по формуле Дано натуральное число N. Вычислить SUMM от i=1 до n (1+i)/i! подробнее

Показать сообщение отдельно
DStavi
0 / 0 / 0
Регистрация: 01.04.2014
Сообщений: 3
03.04.2014, 22:32  [ТС]
Решение приведенное вами компилируется и это хорошо) Однако, оно не решает поставленную задачу. Решил проблему изменением типа функции с void на char*, т.е. теперь не изменяю входящую строку, а отдаю на выход измененную.
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
#include <iostream>
#include <math.h>
 
using namespace std; 
 
//Удаление повторяющихся элементов в алфавите
char* Alphabet_Sort(char* alphabet)
{
    int cur = 0; //Номер элемента из алфавита который мы проверяем
    char* correct;//Cоздали алфавит в котором символы алфавита не повторяются
    correct = new char [strlen(alphabet)];
    strset(correct, '\0');
    char s = alphabet[0];
    int count = 0;
    while(s!= '\0')
    {
            //Если в алфавите без повторений нет символа из текущего алфавита
            //То копируем его в конец строки алфавита без повторений
 
        if(!strchr(correct, int(s)))
            {
                correct[count] = s; 
                count++;
            }
            cur++;
            s = alphabet[cur];
    }
    //Заменили исходный алфавит алфавитом без повторений
    return correct;
}
 
int main()
{
    char* s = "aaabbbcccddd\0";
    cout<<s;
    cout<<endl;
    s = Alphabet_Sort(s);
    cout<<s<<endl;
    system("Pause");
    return 0;
}
Проблема возникала из-за того что мы не можем изменить строку в функции подавая ее на вход подобным образом: void Alphabet_Sort(char* (&alphabet))
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru