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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Astart
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 17
#1

Вывести все глухие согласные (без повторений), которые встретились в двух самых коротких словах - C++

04.03.2012, 23:55. Просмотров 1357. Ответов 7
Метки нет (Все метки)

Помогите или хотя бы натолкните на мысль чайника в программировании, пожалуйста!
Итак, дана следующая задача:
Дан массив из n слов произвольной длины (длина слова не превышает 80 символов). Символами могут быть только заглавные латинские буквы. Найти и вывести все глухие согласные буквы (без повторений), которые встретились в двух самых коротких словах.

Во-первых, не совсем ясно будет ли являться подобное объявление массивом из n слов произвольной длины?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include "stdafx.h"
#include <iostream>
#include <clocale>
#include <conio.h>
using namespace std;
int main(){
setlocale(LC_CTYPE,"Russian");
char str[80];
cout << "Введите любое слово:";
gets (str);
cout << "Вы ввели:" << str;
system("pause");
}
Во-вторых, как задать то, что символами могут быть только заглавные латинские буквы?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2012, 23:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывести все глухие согласные (без повторений), которые встретились в двух самых коротких словах (C++):

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

Напечатать в алфавитном порядке все глухие согласные буквы - C++
Дан текст на русском языке. Напечатать в алфавитном порядке все глухие согласные буквы, которые не входят только в одно слово. НА С++ и...

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

Строки: найти первое из самых длинных и последнее из самых коротких слов и поменять их местами - C++
Помогите написать прогу) 1. Строка состоит не менее чем из двух слов. Преобразовать её по следующему правилу: найти первое из самых...

Вывести слова без повторений,которые имеют больше гласных,чем согласных. - C++
Пусть у нас есть текстовый файл,на который не накладываются ограничения относительно его размера. Также не накладываются ограничения на...

Вывести все слова в столбик без повторений - C++
У меня такое задание: Ввести ленту произвольной длины, которую трактовать как текст, в котором слова отделены одним или несколькими...

7
retmas
Жарю без масла
859 / 741 / 164
Регистрация: 13.01.2012
Сообщений: 1,694
05.03.2012, 00:02 #2
Цитата Сообщение от Astart Посмотреть сообщение
будет ли являться подобное объявление массивом из n слов произвольной длины?
C++
1
char str[80];
это массив символов. он же - одно слово.
Цитата Сообщение от Astart Посмотреть сообщение
как задать то, что символами могут быть только заглавные латинские буквы?
isupper
0
Astart
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 17
05.03.2012, 00:21  [ТС] #3
спасибо за заглавные латинские буквы - с этим разобрались,
теперь вопрос в следующем, если
C++
1
char str[80];
одно слово, то как задать из него массив, причем слова в этом массиве не превышают 80 символов?
0
sandye51
программист С++
684 / 586 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
05.03.2012, 00:24 #4
C
1
2
3
const unsigned int count = 100; // число слов;
const unsigned int max_length = 80; // максимальная длина слова;
char text[count][max_length]; // массив из 100 слов - не более 80 символов каждом;
0
Astart
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 17
05.03.2012, 00:28  [ТС] #5
да и еще вопрос, надеюсь мне кто-нибудь поможет с ним разобраться, к тому же я возможно заблуждаюсь...
Массив слов (одномерный) - есть строка? Соответственно объявляться он может как строка?
Согласно этому:

"В С++ предусмотрено два типа данных, значения которых представляют строки символов. Первый из них — массив базового типа char, в котором хранится последовательность символов строки, а конец строки отмечается нулевым символом '\0'. Это старый способ представления строк, унаследованный языком C++ от языка С. Строки данного типа, называемые строками С, все еще широко используются."

А значит объявление через char также будет правильным, просто не современным и больше свойственным для С, а не С++? Или я же чего-то не въезжаю?
0
sandye51
программист С++
684 / 586 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
05.03.2012, 00:37 #6
char представляет отдельный символ. Например
C
1
char c = '1';
Соответственно чтобы представить строку (а строка это массив символов), то надо объявить массив типа char
C
1
char string[80];
например так, или
C
1
char string[] = "Привет, мир";
в этом случае размер массива (т.е. и строки) вычислится сам, исходя из числа символов в ковычках. В данном случае размер массива будет 11 символов (байт) + 1 символ (байт)
Этот +1 как раз взялся из-за того, что строки в С оканчиваются символом '\0', соответственно для его хранения и отводится дополнительный байт

а в С++ уже просто есть готовый класс std::string, который является оберткой над массивом типа char
C++
1
std::string word("Привет, мир");
например так можно объявить строку
1
Astart
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 17
05.03.2012, 00:46  [ТС] #7
хорошо, спасибо за доходчивое разъяснение - это действительно намного понятней, чем написано в книжках...
и снова вопрос, теперь насчет заполнения массива:
C++
1
2
3
4
5
6
const unsigned int count = 20; // число слов;
const unsigned int max_length = 80; // максимальная длина слова;
char text[count][max_length]; // массив из 100 слов - не более 80 символов каждом;
cout << "Введите массив";
for(int count=0; count<20; count++)
cin>>text;
что я делаю неправильно? и как заполнить массив?
0
sandye51
программист С++
684 / 586 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
05.03.2012, 01:01 #8
так индекс у массива где?
C++
1
2
3
4
5
6
const unsigned int count = 20; // число слов;
const unsigned int max_length = 80; // максимальная длина слова;
char text[count][max_length]; // массив из 100 слов - не более 80 символов каждом;
cout << "Введите массив";
for(int count=0; count<20; count++)
cin>>text[i];
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2012, 01:01
Привет! Вот еще темы с ответами:

Вывести все числа, которые максимально часто встречаются в массиве и количество их повторений - C++
Народ помогите пожалуйста, не могу понять, что не правильно. Вот задание Дан одномерный массив из 100 случайных целых чисел в...

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

Вывести на экран все числа, на которые заданное число делится без остатка - C++
Нужно написать программу с использованием процедуры, которая выводит на экран все числа, на которые заданное число делится без остатка. ...

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


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

Или воспользуйтесь поиском по форуму:
8
Yandex
Объявления
05.03.2012, 01:01
Ответ Создать тему
Опции темы

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