Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.94/247: Рейтинг темы: голосов - 247, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 12

Вывести в алфавитном порядке все буквы входящие в текст по одному разу

29.03.2010, 20:17. Показов 46016. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан массив из строчных латинских букв. Вывести на экран в алфавитном порядке все буквы, которые входят в этот текст по одному разу.
помогите плиз, ато не получается никак...
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.03.2010, 20:17
Ответы с готовыми решениями:

Напечатать в алфавитном порядке буквы,входящие в заданный текст по одному разу
Напечатать в алфавитном порядке буквы,входящие в заданный текст по одному разу.

Напечатать в алфавитном порядке все буквы, которые входят в текст по одному разу
Необходимо решить следующее : Задача 1. Дан произвольный текст. Напечатать в алфавитном порядке все буквы, которые входят в этот текст по...

Вывести в порядке обратном алфавитному по одному разу все строчные буквы, входящие в первую строку, но не во вторую.
Даны две строки. Вывести в порядке обратном алфавитному по одному разу все строчные буквы, входящие в первую строку, но не во вторую. ...

24
Эксперт С++
 Аватар для XuTPbIu_MuHTAu
2256 / 771 / 25
Регистрация: 27.05.2008
Сообщений: 1,496
29.03.2010, 20:31
Лучший ответ Сообщение было отмечено как решение

Решение

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
#include <stdio.h>
 
const int alph_length = 26;
 
 
int main() {
    int i;
    char text[81];
    char *p;
 
    int letters_encountered[alph_length];
 
    for(i = 0;i< alph_length ; i++ ) 
         letters_encountered[i]=0;
 
    fgets(text,80,stdin);
 
    p = text;
 
    while(*p!=0) {
        if(*p< 'a' || *p > 'z') {
 
            p++;
            continue;
        };
 
        letters_encountered[*(p++) -'a']++;
    };
 
    for(i=0;i<alph_length;i++) { 
        if(letters_encountered[i]==1)
            printf("%c",'a'+(char)i);
 
    };
    return 0;
 
};
8
 Аватар для cobe_thichtudie
3 / 6 / 0
Регистрация: 23.11.2010
Сообщений: 35
25.11.2010, 05:35
Цитата Сообщение от XuTPbIu_MuHTAu Посмотреть сообщение
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
#include <stdio.h>
 
const int alph_length = 26;
 
 
int main() {
    int i;
    char text[81];
    char *p;
 
    int letters_encountered[alph_length];
 
    for(i = 0;i< alph_length ; i++ ) 
         letters_encountered[i]=0;
 
    fgets(text,80,stdin);
 
    p = text;
 
    while(*p!=0) {
        if(*p< 'a' || *p > 'z') {
 
            p++;
            continue;
        };
 
        letters_encountered[*(p++) -'a']++;
    };
 
    for(i=0;i<alph_length;i++) { 
        if(letters_encountered[i]==1)
            printf("%c",'a'+(char)i);
 
    };
    return 0;
 
};
привет!
че та программа не работает!
надо по англ. или по русск.?
0
0 / 0 / 3
Регистрация: 13.04.2011
Сообщений: 91
Записей в блоге: 1
14.04.2011, 10:46
не работает программа.. выводится окно в котором непонятно что печать... по окнчанию печати окно просто закрывается и все(( в чем проблема??
0
 Аватар для igorrr37
2869 / 2016 / 991
Регистрация: 21.12.2010
Сообщений: 3,724
Записей в блоге: 15
14.04.2011, 13:03
всё работает, вот ещё вариант
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<stdio.h>
 
int Comp(const void* a, const void* b){
    return *(char*)a-*(char*)b;
}
 
int main(){
    char text[]="fghbnggnawqxw", *p=text;
    qsort(text, sizeof(text)-1, sizeof(*text), Comp);
    for(; *p; ++p){
        if(*p==*(p+1)){
            while(*p==*(p+1))++p;
        }
        else{
            printf("%c", *p);
        }
    }
    return 0;
}
0
0 / 0 / 3
Регистрация: 13.04.2011
Сообщений: 91
Записей в блоге: 1
14.04.2011, 23:37
компилятор на DevC++ выдает ошибку:
9 C:\Users\User\Documents\00000000.cpp `qsort' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)

В чем проблема?

а как сделать чтобы получить целую строку в виде алфавита, если дана матрица 5 на 6.. матрица задана типа:
C++
1
2
3
4
5
char *matr[5]={{"abcemn"},
               {"fedkpo"},
               {"ghijqr"},
               {"xwvuts"},
               {"yzaaaa"}};
Добавлено через 5 минут
в чем проблема компиляции нашел.. не добавлен #include один.. а вот что сделать мне с той матрицей? ее как вывести в строку в алфавитном порядке?
0
 Аватар для igorrr37
2869 / 2016 / 991
Регистрация: 21.12.2010
Сообщений: 3,724
Записей в блоге: 15
15.04.2011, 00:20
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
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
 
int Compare(const void* a, const void* b){
    return *(char*)a-*(char*)b;
}
 
int main(){
    char *matr[]={{"abcemn"},
                   {"fedkpo"},
                   {"ghijqr"},
                   {"xwvuts"},
                   {"yzaala"}}, res[100]={'\0'}, i, *a=res, *b=res;
    for(i=0; i<sizeof(matr)/sizeof(*matr); i++){
        strcat(res, matr[i]);
    }
    qsort(res, strlen(res), sizeof(*res), Compare);
    for(; *b=*a; ++a){
        if(*a!=*(a+1))++b;
    }
    puts(res);
    return 0;
}
1
0 / 0 / 3
Регистрация: 13.04.2011
Сообщений: 91
Записей в блоге: 1
15.04.2011, 00:32
5 ошибок такого типа:
14 C:\Users\User\Documents\777777.cpp brace-enclosed initializer used to initialize `char*'

Я так понимаю невозможно проинициализировать char.. в чем проблема? пользуюсь DevC++.. и еще, а если вывод строки сделать через printf %s или printf &c то как ?
0
 Аватар для igorrr37
2869 / 2016 / 991
Регистрация: 21.12.2010
Сообщений: 3,724
Записей в блоге: 15
15.04.2011, 00:45
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
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
 
int Compare(const void* a, const void* b){
    return *(char*)a-*(char*)b;
}
 
int main(){
    char *matr[]={"abcemn",
                   "fedkpo",
                   "ghijqr",
                   "xwvuts",
                   "yzaala"}, res[100]={'\0'}, i, *a=res, *b=res;
    for(i=0; i<sizeof(matr)/sizeof(*matr); i++){
        strcat(res, matr[i]);
    }
    qsort(res, strlen(res), sizeof(*res), Compare);
    for(; *b=*a; ++a){
        if(*a!=*(a+1))++b;
    }
    printf("%s", res);
    return 0;
}
2
0 / 0 / 3
Регистрация: 13.04.2011
Сообщений: 91
Записей в блоге: 1
15.04.2011, 00:51
спасибо огромное)) примного благодарен))
0
0 / 0 / 0
Регистрация: 08.06.2011
Сообщений: 3
08.06.2011, 19:54
XuTPbIu_MuHTAu, Помогите плиз составить программу «сжатия» исходной последовательности символов: каждая подпоследовательность, состоящая из нескольких идущих подряд символов x, заменяется на текст x(k). Где x – символ, k – число вхождений этого символа в исходную последовательность.
0
 Аватар для LVV
155 / 137 / 46
Регистрация: 15.02.2010
Сообщений: 750
24.11.2011, 20:36
Ну, во-первых массив не "дан", а вводится с клаиатуры.
Во-вторых, если массив не динамический, то имеет границы,
которые мы установим до 80 символов, включая символ конца строки \0.
В-третьих, если сказано, что массив строчных латинских букв,
то нет смысла программно проверять действительно ли это
строчные латинские буквы.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
 
int main() {
    
//80 сиволов в строке включая символ конца строки \0
//26 букв в алфавите
char t[80];
 int b[26]={0};
 
      cin >> t;
 
        
        for(int i=0; t[i]!='\0'; i++)
                ++b[int(t[i])-97];//97 это ASCII-код строчной латинской буквы "а"
        
        for(int i=0; i<26; i++)
                if (b[i]==1) cout << t[i];
            
 
 system ("pause");
        return 0;
 }
помоему так проще и понятнее, чем предложенные здесь варианты.
1
den228
04.12.2011, 23:39
помогите пожалуйста.
нужна функция на С
Функция WordLength(s,n)
Назначение: определение длины слова с номером n в строке s.
Dima4u5
12.04.2012, 14:34
Требуеться добавить
C
1
# include <stdlib.h>
ahodaro
18.04.2012, 15:00
Только начал изучать с++, пока разбираюсь со строками по примерам из учебника.
Вот как решил эту задачу.
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
int main()
{
char cp[]="abcdfhtrsweasd aswjgash vkas uuu , asdadasefeasf"; // примерная строка
char temp;
string flag="";
string result="";
string str2(cp); //перенес из массива в строку, ибо эту тему разбираю
string::size_type pos = 0;
cout << str2 + "\n";
    while (pos != str2.size()){
    temp = str2[pos]; // работаю с одним символом
 
    if (flag.find(temp) == string::npos) { flag.push_back(temp);}else {pos++; continue; } 
//здесь выношу все проверенные буквы во вторую строку, если буква уже есть в строке то значит буква проверена, переходим к следущей 
 
 
string::size_type pos2 = str2.find_last_of(temp); //ищу с конца строки букву
    if ( pos == pos2 ) { //если нашел на том же месте значит буква одна, добавляю в список результата
    result.push_back(temp);
 
    }
//если нашел в другом месте букв больше ничего не делаю
    pos++;
    }
 
cout <<result;
 
return 0;
Отсортировку пока не умею
 Аватар для David Sylva
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
12.07.2012, 11:04
Можно вот так решить
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <algorithm>
using namespace std;
int main() 
{ 
    char str[] = "ASASFSAWFAFASASD"; // исходный массив
    int size = strlen(str);   // размер
    sort(str, str+size);   // сортируем по алфавиту
    int flag = 0;  // количество совпадений
    
    for ( int j = 0; j < size; j++)  
    {
        for ( int i = 0; i < size; i++) 
        { 
            if(str[j] == str[i]) // если буквы совпали
                flag++; // увеличиваем счётчик
        } 
        if(flag == 1) // если 1 значит встречается один раз
            cout << str[j];   
        flag = 0;   // сбрасываем счётчик
    } 
    cout << endl;
}
2
Фрилансер
Эксперт С++
 Аватар для Dekio
5845 / 1226 / 499
Регистрация: 23.11.2010
Сообщений: 3,375
Записей в блоге: 1
12.07.2012, 12:46
David Sylva,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <string>
#include <map>
 
int main()
{
    std::string Str = "ASASFSAWFAFASASD";
    std::map <char, int> Map;
    for(char &i: Str)
       Map[i]++;
    for(auto &it: Map)
       if(it.second == 1)
          std::cout<<it.first;
    return 0;
}
0
1 / 1 / 0
Регистрация: 06.12.2012
Сообщений: 9
27.12.2012, 17:53
Я попробовал для одномерного символьного массива:
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
#include <iostream>
#include <conio.h>
 
using namespace std;
const int ALPHA = 26;
int main()
{
    char text[100] ;//массив с введенным текстом
    for (int r = 0; r < 100; r++)
    {
        text[r] = '0';
    }
    cout << "Enter the text: " << endl;
    cin.getline(text,99);
    char letters[ALPHA]; //массив для хранения в алфавитном порядке единожды встречаемых букв
    int i = 0;
    for (char n = 'a'; n <= 'z'; n++)
    {
        int count = 0;
        for (int k = 0; k < 100; k++)
        {
            if (text[k] == n)
                count++;
        }
        if (count == 1)
        {
            letters[i] = n;
            i++;
        }
    }
    for (int e =0; e < ALPHA; e++)
    {
        cout << letters[e];
    }
    _getche();
    return 0;
}
на выходе шлак какой то получается. Подскажите где собака зарыта, плз
0
 Аватар для volodin661
6668 / 2260 / 346
Регистрация: 10.12.2013
Сообщений: 7,819
12.12.2013, 06:37
Цитата Сообщение от sashagamer Посмотреть сообщение
Дан массив из строчных латинских букв. Вывести на экран в алфавитном порядке все буквы, которые входят в этот текст по одному разу.
помогите плиз, ато не получается никак...
РАЗВЛЕКАЮСЬ
для сравнения на PERL

для массива "xaabbbyccczoo":

Perl
1
2
s/ (.) / $a{$1}++ /grex for "xaabbbyccczoo";
print sort grep{ $a{$_} < 2 } keys %a;
1
 Аватар для Cobarg
0 / 0 / 0
Регистрация: 19.02.2020
Сообщений: 15
15.06.2021, 12:41
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
#include <iostream>
#include <string.h>
 
int main ()
{
   using std::cout;
   using std::cin;
   using std::endl;
 
   char Word[256]{};
   int count =0, in=0, check=0;
 
   cin.getline(Word,256,'\n');
   int lenght = strlen(Word);
   char *arrayChar = new char [lenght]{};
   int *arrayQtt = new int [lenght]{};
 
   while (Word[count]!='\0')
   {
       for (int i=0;i<=count;i++)
       {
          if (arrayChar[i]==Word[count])
             {
                 arrayQtt[i]+=1;
                 check=1;
                 break;
             }
       }
       if (check==0)
       {
            arrayChar[in]=Word[count];
            arrayQtt[in]+=1;
            in++;
       }
       check=0;
       count++;
   }
     char TempChar=0;
     int TempInt=0;
 
  for(int k=0; k<in-1;k++)
     {
        for(int i=0; i<in-1;i++)
       {
            if(arrayChar[i]>arrayChar[i+1])
            {
                TempChar=arrayChar[i];
                arrayChar[i]=arrayChar[i+1];
                arrayChar[i+1]=TempChar;
                TempInt=arrayQtt[i];
                arrayQtt[i]=arrayQtt[i+1];
                arrayQtt[i+1]=TempInt;
            }
       }
     }
  for (int i=0;i<in;i++)
       {
          cout<<arrayChar[i]<<'\t'<<arrayQtt[i]<<'\n';
       }
 
       delete [] arrayChar;
       delete [] arrayQtt;
 
   return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.06.2021, 12:41
Помогаю со студенческими работами здесь

Вывести на экран в алфавитном порядке все буквы, которые входят в текст по одному разу
Дан массив из строчных латинских букв. Вывести на экран в алфавитном порядке все буквы, которые входят в этот текст по одному разу. ...

В алфавитном порядке порядке напечатать (по одному разу) все строчные русские буквы, входящие в заданный текст
С ( Си ) Вводится текст, за которым следует точка. В алфавитном порядке порядке напечатать ( по разу) все строчные русские буквы,...

В алфавитном порядке напечатать по одному разу все строчные согласные буквы, входящие в текст
Дан текст на русском языке, за которым следует точка. В алфавитном порядке напечатать по одному разу все строчные согласные буквы, входящие...

В алфавитном порядке напечатать (по одному разу) все строчные русские буквы, входящие в заданный текст
Подскажите ошибку, которую допустила в программе. Задание такое: Вводится текст, за которым следует точка. В алфавитном порядке...

Напечатать по одному разу в алфавитном порядке все строчные русские гласные буквы, входящие в заданный текст
Используя множества, напечатать по одному разу в алфавитном порядке все строчные русские гласные буквы, входящие в заданный текст. ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru