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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2009, 19:41   #1
Many man
Пользователь
 
Регистрация: 25.11.2008
Сообщений: 83
По умолчанию Задача на строки С++

Определить сколько в строке гласных букв (при условии что текст записан кириллицей)
Код:
#include"iostream"
#include"string"
#include <conio.h>
using namespace std;
int main()
{
	string str;
	string g("аеёиоуыэюя");
	int k=0;
	cout<<"Enter string kirilicei"<<endl;
	getline(cin,str);
		for(unsigned int i=0;i<str.length();i++)
			for(int n=1;n<=10;n++)
		if(str[i]==g[n])k++;
	cout<<"k="<<k<<endl;
	return 0;
	getch();
		}
Написал программу, запускается но не работает
Many man вне форума Ответить с цитированием
Старый 06.05.2009, 19:44   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Поменяйте местами строки:
Код:
return 0;
getch();
Потом откройте исходник, например, в AkelPad и сохраните в кодировке .866

Ну или вот вам строка в этой кодировке:
Код:
	string g("*ҐсЁ®глноп");
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 06.05.2009, 19:55   #3
Many man
Пользователь
 
Регистрация: 25.11.2008
Сообщений: 83
По умолчанию

Сделал но непомогло, задача неправильно работает
Many man вне форума Ответить с цитированием
Старый 06.05.2009, 19:58   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
#include <iostream>
#include <string>
#include <conio.h>
using namespace std;
int main()
{
	string str;
	string g("*ҐсЁ®глноп");
	int k=0;
	cout<<"Enter string kirilicei"<<endl;
	getline(cin,str,'\n');
		for(unsigned int i=0;i<str.length();i++)
			for(int n=0;n<10;n++)
		  if(str[i]==g[n]) k++;
	cout<<"k="<<k<<endl;
		getch();
	return 0;

}
Пример ввода:
Код:
Enter string kirilicei
ааа алво ааа
k=8
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 06.05.2009, 20:22   #5
Many man
Пользователь
 
Регистрация: 25.11.2008
Сообщений: 83
По умолчанию

У меня вот что выходит
Код:
Enter string kirilicei
аоавав
k=1
Many man вне форума Ответить с цитированием
Старый 06.05.2009, 20:44   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
У меня вот что выходит
Так вы кодировку сменили? У меня выводит
Код:
Enter string kirilicei
аоавав
k=4
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 06.05.2009, 20:45   #7
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Немного бредово но должно работать
Код:
#include <iostream>
#include <string>
#include <algorithm>
#include <Windows.h>
using namespace std;

char ch_f(char ch[2])
{
	char buff[2];
	CharToOemA(ch,buff);
	return  buff[0];
}
bool is_odd(char ch){
	return	ch == ch_f("а")||ch == ch_f("е")||ch == ch_f("ё")||ch == ch_f("и")
			||ch == ch_f("о")||ch == ch_f("у")||ch == ch_f("ы")||ch == ch_f("э")
			||ch == ch_f("ю")||ch == ch_f("я");
}
int main()
{
	setlocale(0,"RUS");
	string str;
	int c;
	cin>>str;
	c = count_if(str.begin(),str.end(),is_odd);
	cout<<c<<endl;
	return 0;
}
Цитата:
ааооррё
5
Press any key to continue . . .
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума Ответить с цитированием
Старый 06.05.2009, 21:04   #8
Many man
Пользователь
 
Регистрация: 25.11.2008
Сообщений: 83
По умолчанию

А попроще можно сделать эту задачу
Many man вне форума Ответить с цитированием
Старый 06.05.2009, 21:05   #9
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Many man
А попроще можно сделать эту задачу
А чем вам не нравится ваш вариант?
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 06.05.2009, 21:15   #10
Many man
Пользователь
 
Регистрация: 25.11.2008
Сообщений: 83
По умолчанию

Мой вариант не работает, ну я думаю у меня проблемы с кодировкой.
Many man вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на строки semennn Помощь студентам 5 25.04.2009 07:58
задача на строки BERT Паскаль, Turbo Pascal, PascalABC.NET 1 07.04.2009 10:07
Задача на строки Stiff Помощь студентам 6 26.03.2009 22:47
Задача на строки LaSeule Помощь студентам 2 31.01.2009 00:54