Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
Danaya123
0 / 0 / 0
Регистрация: 27.10.2016
Сообщений: 14
#1

В самом коротком слове все согласные буквы заменить на букву «A»

15.11.2016, 19:56. Просмотров 890. Ответов 3

Дан массив из n слов произвольной длины ( длина слова не превышает 80 символов). Символами могут быть только заглавные латинские буквы. В самом коротком слове все согласные буквы заменить на букву «A».

Помогите, пожалуйста, написать код, у самой ничего не выходит((
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2016, 19:56
Ответы с готовыми решениями:

В исходном предложении заменить буквы в самом коротком слове на символ "!"
Помогите исправить код, вроде всё написал, но не работает как надо, выводит...

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

Заменить буквы в самом длинном слове на символы '*'
3. В исходном предложении заменить буквы в самом длинном слове на символы '*'

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

Заменить в заданной строке все буквы «о» на букву «а»
Как вот понять это условие кто понял напишете решение.

3
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
7045 / 3346 / 452
Регистрация: 04.12.2011
Сообщений: 9,306
Записей в блоге: 5
15.11.2016, 21:23 #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
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
    const int m=5, n=80;
    char a[m][n] = {"MOMO","MILO","ROMU","CRISHNU","HARE"};
    char gl_ass[]="EIOUY";
 
    for(int i=0; i<m; i++)
        cout<<a[i]<<endl;
            cout<<endl;
    for(int i=0; i<m; i++)
        {
            for(int j=0; a[i][j]; j++)
                {
                    if(strchr(gl_ass, a[i][j])) a[i][j]='A';
                }
        }
 
 
for(int i=0; i<m; i++)
        cout<<a[i]<<endl;
 
system("pause");
return 0;
}
1
Danaya123
0 / 0 / 0
Регистрация: 27.10.2016
Сообщений: 14
15.11.2016, 22:00  [ТС] #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
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
    const int m = 5, n = 80;
    char a[m][n] = { "MOMO","MILO","ROMU","CRISHNU","HOR" };
    char sogl_ass[] = "MLRCRSHN";
 
    for (int i = 0; i<m; i++)
        cout << a[i] << endl;
    cout << endl;
    for (int i = 0; i<m; i++)
    {
        for (int j = 0; a[i][j]; j++)
        {
            if (strchr(sogl_ass, (int)a[i][j]) != 0) a[i][j] = 'A';
        }
    }
 
 
    for (int i = 0; i<m; i++)
        cout << a[i] << endl;
 
    system("pause");
    return 0;
}
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
7045 / 3346 / 452
Регистрация: 04.12.2011
Сообщений: 9,306
Записей в блоге: 5
15.11.2016, 22:42 #4
Лучший ответ Сообщение было отмечено Danaya123 как решение

Решение

Цитата Сообщение от Danaya123 Посмотреть сообщение
В вашей программе заменяет гласные, а в задании согласные нужно заменить.
Да, невнимательно прочёл.
Цитата Сообщение от Danaya123 Посмотреть сообщение
И как сделать так, чтобы заменяло в самом коротком слове?
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
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
    const int m=5, n=80;
    char a[m][n] = {"MOMO","MILO","ROMU","CRISHNU","HARE"};
    char gl_ass[]="BCDFGHJKLMNJPQRSTVWXZ";
 
    for(int i=0; i<m; i++)
        cout<<a[i]<<endl;
            cout<<endl;
 
int m_ind[m];
for(int k=0; k<m; ++k)m_ind[k]=-1;
int ind_min=0, ind_mind_strt=0;
 
for(int i=0; i<m; i++)
    {
        if(strlen(a[ind_min])>strlen(a[i])) 
            {
                ind_min=i;
                    for(int k=1; k<m; ++k)m_ind[k]=-1;
                        ind_mind_strt=0;
                            m_ind[ind_mind_strt++]=i;
                                
            }
        if(strlen(a[ind_min]) == strlen(a[i]))
            {
                m_ind[ind_mind_strt++]=i;
            }
    }
 
ind_mind_strt=0; 
cout<<endl;
while(m_ind[ind_mind_strt] !=-1 && ind_mind_strt<m)
    {
            for(int j=0; a[m_ind[ind_mind_strt]][j]; j++)
                {
                    if(strchr(gl_ass, a[m_ind[ind_mind_strt]][j])) a[m_ind[ind_mind_strt]][j]='A';
                }
        ind_mind_strt++;
    }
 
for(int i=0; i<m; i++)
        cout<<a[i]<<endl;
            cout<<endl;
system("pause");
return 0;
}
Данный код заменяет во всех словах с длиной равной длине - минимального.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.11.2016, 22:42

Заменить в слове все маленькие латинские буквы от ‘a’ до ‘y’ на следующие по алфавиту
Дано слово. Заменить в слове все маленькие латинские буквы от ‘a’ до ‘y’ на...

Строки. В каждом чётном по порядку слове удалить все нечётные буквы, а в каждом нечётном слове удалить все чётные буквы.
8.4.1. Помогите, пожалуйста, решить задачу в С++. Дана строка символов,...

Заменить в слове первую букву “A” на символ
Задание такого: Ввести с клавиатуры слово и символ. Заменить в слове первую...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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