Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.01.2010, 16:02   #1
Михей91
Новичок
Джуниор
 
Регистрация: 07.01.2010
Сообщений: 1
Восклицание Строка содержит произвольный русский текст. Проверить, каких букв в нем больше: гласных или согласных.

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


Код на Pascal:
Код:
program example1;**
const**
***glasn=['а','е','и','о','у','ы','э','ю','я'];**
****soglas=['б','в','г','д','ж','з','й','л','м',
**********'н','р','к','п','с','т','ф','х','ц','ч','ш','щ'];
**var
****st: string;**
******g,s,i:integer;**
begin**
***write('Введите строку> '); readln(st);**
*****g:=0; s:=0;**
*******for i:= 1 to length(st) do**
*********if st[i] in glasn then inc(g) else if st[i] in soglas then inc(s);
*********if g> s then writeln('Гласных больше')
*****else if g< s then writeln('Согласных больше')
***else writeln('Согласных и гласных букв поровну');
**readln;**
end.

Код на VC++:
Код:
#include <locale>
#include <iostream>
#include <string>
***
using namespace std;
***
bool isVowels(wchar_t ch)
{
**return static_cast<wstring>(L"аеёиоуыэюя").find(towlower(ch))!=wstring::npos;
}
***
int
main()
{
**locale::global(locale("rus_rus.866"));
**wcout<<L"Введите произвольную текстовую строку:"<<endl;
**wstring str;
**wcin.setf(ios::skipws);
**getline(wcin,str);
**unsigned int vowels=0,
******consonants=0;
**for(wstring::const_iterator it=str.begin();it!=str.end();it++)
**{
***if(iswalpha(*it))
***{
****if(isVowels(*it))vowels++;
****else consonants++;
***}
**}
**wcout<&l
**t;L"Гласных:"<<vowels<<endl;
**wcout<<L"Согласных:"<<consonants<<endl;
**if(vowels>consonants)wcout<<L"Гласных больше";
**else if(vowels<consonants)wcout<<L"Гласных меньше";
**else wcout<<L"Гласных и согласных поровну";
**wcout<<endl;
**system("PAUSE");
**return 0;
}

Код на С++ (не работает ((( ):
Код:
{
int g=0,s=0;
const**
***char glasn[]="аеиоуыэюя",
****soglas[]="бвгджзйлнркпстфхцчшщ";
**cout<<"Введите строку";
**cin.getline(st,30);**
****while(st[i]!=0)
**{
for(i=0;i<strlen(glasn);i++)
{
***if(strstr(st,glasn[i]!=0)
k=++;
}
***
for(i=0;i<strlen(glasn);i++)
{
***if(strstr(st,soglas[i]!=0)
s=++;
}
}
**********
*********if (g> s)
***cout <<" Гласных больше";
*****else**if (g=s)**
*****cout <<"Согласных и гласных букв поровну";
******else cout <<"Согласных больше";
return 0;
Вообщем все мое старание закончилось вот этим... итог что ничего не работает (((
Помимо всего этого ввод строки должен быть НЕ с клавиатуры, а из текстового файла... Я пробовал написать, но выводит только первую букву, и с этим тоже сабж ((

Буду очень благодарен, если кто-нибудь мне поможет...
Михей91 вне форума Ответить с цитированием
Старый 07.01.2010, 16:57   #2
Cpluser
Форумчанин
 
Аватар для Cpluser
 
Регистрация: 16.02.2009
Сообщений: 555
По умолчанию

Код:
#include <iostream>
#include <fstream>
using namespace std;

int main()
{ 
	int gla=0, sogl=0;
	setlocale(LC_ALL,"russian");
	char glasn[]="аеиоуыэюя", soglas[]="бвгджзйлнркпстфхцчшщ";
	char* a = new char[];
	ifstream t("1.txt");
	int i=0;
	while(!t.eof())
	{
		t.getline(a,100);
		for(int i=0; i<strlen(a); i++)
		for(int j=0; j<strlen(glasn); j++)
			if(a[i]==glasn[j])
				gla++;
		for(int i=0; i<strlen(a); i++)
		for(int j=0; j<strlen(soglas); j++)
			if(a[i]==soglas[j])
				sogl++;
	}	

	cout<<gla<<" "<<sogl<<endl;
system("pause");
if(....
}
Cpluser вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск латинских гласных букв в строке KoFeMaN Помощь студентам 7 12.12.2009 17:24
Определить, что строка содержит буквы motorway Microsoft Office Excel 5 06.07.2009 17:23
посчет в тексте кол-во слов, гласных и согласных букв DiabloRVK Помощь студентам 4 01.12.2008 14:23
Удаление гласных, согласных, цифровых символов в строке <zeroql> Паскаль, Turbo Pascal, PascalABC.NET 9 27.11.2008 08:05
Найти и вывести все слова,у котоpых число гласных букв пpевышает число согласных. Briz Помощь студентам 2 11.05.2008 00:56