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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.06.2009, 15:06   #1
Skrip
Пользователь
 
Аватар для Skrip
 
Регистрация: 04.06.2009
Сообщений: 45
По умолчанию Обработка символьных данных и текстовых файлов

Нужна помощь..!!
Надо в заданной строке указать слово, в котором доля гласных (a,e,i,o,) максимальна.
Исходные данные должны находиться в текстовом файле..
идей вообще нету.. не знаю я как со строками работать.. Помогите пожалуйста!!
Я спокойный, вежливый и уравновешенный человек
Skrip вне форума Ответить с цитированием
Старый 14.06.2009, 16:29   #2
amdbodia
Пользователь
 
Аватар для amdbodia
 
Регистрация: 13.05.2009
Сообщений: 71
По умолчанию

В чём проблема? В с++ нету понятия "строка". Есть массив символов. То-есть одно слово - массив символов. Необходимо создать массив слов, создать цикл, берущий каждое слово отдельно, и содержащий внутренний цикл, проверяющий является ли каждая буква слова гласной. Если "да" - увеличивающий счётчик. Вариантов дальнейшей реализации - много. К примеру считать сразу количество букв всего в слове и затем, если отношение больше чем у предыдущего слова, присваивать выделенной переменной адрес текущего слова.
amdbodia вне форума Ответить с цитированием
Старый 14.06.2009, 16:40   #3
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

если будет совсем туго, стучите 368161244, помогу
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 14.06.2009, 17:40   #4
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

Цитата:
В чём проблема? В с++ нету понятия "строка". Есть массив символов. То-есть одно слово - массив символов. Необходимо создать массив слов, создать цикл, берущий каждое слово отдельно, и содержащий внутренний цикл, проверяющий является ли каждая буква слова гласной. Если "да" - увеличивающий счётчик. Вариантов дальнейшей реализации - много. К примеру считать сразу количество букв всего в слове и затем, если отношение больше чем у предыдущего слова, присваивать выделенной переменной адрес текущего слова.
в c++ как раз есть понятие строка, std::string из стандартной (подчеркиваю, стандартной) библиотеки
vvviperrr вне форума Ответить с цитированием
Старый 15.06.2009, 21:25   #5
lennon
Заблокирован
 
Регистрация: 18.11.2007
Сообщений: 254
По умолчанию

Цитата:
Сообщение от vvviperrr Посмотреть сообщение
в c++ как раз есть понятие строка, std::string из стандартной (подчеркиваю, стандартной) библиотеки
amdbodia как раз сказал правильно. класс string состоит из массива char, где конец строки заканчиваеться нулевым байтом. Алгоритм тоже правильный подсказал
lennon вне форума Ответить с цитированием
Старый 15.06.2009, 23:45   #6
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

Цитата:
Сообщение от lennon Посмотреть сообщение
amdbodia как раз сказал правильно. класс string состоит из массива char, где конец строки заканчиваеться нулевым байтом. Алгоритм тоже правильный подсказал
ну извини, если мыслить так, как ты, то ни в одном языке нет понятия "строка", все есть массив символов. мы говорим на уровне абстракций.

пс. в классе std::string строки не заканчиваются нулем, ибо для абстракции типа "строка" это попусту не нужно. кол-во символов считается в отдельном поле, данные которого ты можешь получить методом size().

ппс. почитай Страуструпа
vvviperrr вне форума Ответить с цитированием
Старый 17.06.2009, 21:04   #7
paladinn
Пользователь
 
Регистрация: 19.12.2008
Сообщений: 26
По умолчанию

вот так со строками работать
Код:
#include <iostream.h>
#include <conio.h>
#include <string.h>
int main()
{
 char *s , *p;
 cout<<"vvedite stroky"<<endl;
 gets(s);
 p=strtok(s," "); // разбиваешь строку на подстроки отделенные пробелом
 while (p)
  {
     делаешь чо хочешь с этой подстрокой 
     p=strtok(NULL," ");
}
}

Последний раз редактировалось Sazary; 17.06.2009 в 21:53.
paladinn вне форума Ответить с цитированием
Старый 17.06.2009, 21:54   #8
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

to paladinn
Код:
 char *s , *p;
 cout<<"vvedite stroky"<<endl;
 gets(s);
Вообще-то, сначала нужно выделить память под s, иначе программа вылетит с ошибкой доступа.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка символьных данных и текстовых файлов Skrip Общие вопросы C/C++ 13 10.06.2009 20:51
Обработка текстовых файлов Frenki Помощь студентам 4 17.05.2009 14:52
Pascal. Обработка символьных данных. NitriNKa Помощь студентам 3 25.04.2009 15:15
Обработка символьных данных Normand Паскаль, Turbo Pascal, PascalABC.NET 6 13.04.2009 17:32