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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Алексей_123
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 51
#1

переделать чаровскую прогу по строкам в string - C++

23.11.2011, 20:48. Просмотров 1184. Ответов 22
Метки нет (Все метки)

Вот задание проги:
Словом в строке считается последовательность букв латинского алфавита, остальные символы являются разделителями между словами. За один просмотр символов строки найти все слова с максимальной долей гласных букв (т.е. прописных и строчных символов ’a’, ’e’, ’i’, ’o’, ’u’, ’y’) и занести их в новую строку. Слова в новой строке должны разделяться ровно одним пробелом
и вот прога с использованием строки с типом char *:
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
50
#include <iostream>
using namespace std;
 
void main ()
{
setlocale(LC_ALL, ".1251");
char *str=new char [301];
cout<<"Введите строку.\n";
cin.getline(str, 301);
char *str1=new char [301];
strcpy(str1,str);
char *str2[30];
int z, i=0, kol=0, kol1=0, r=0, len=strlen(str1);
while (r<len)
{
if ((((str1[r]>='a')&&(str1[r]<='z'))||((str1[r]>='A')&&(str1[r]<='Z')))&&((r==0)||((str1[r-1]<'A')||((str1[r-1]>'Z')&&(str1[r-1]<'a'))||(str1[r-1]>'z'))))
{
for (z=r; (((str1[z]>='a')&&(str1[z]<='z'))||((str1[z]>='A')&&(str1[z]<='Z'))); ++z)
{
if ((str1[z]=='a')||(str1[z]=='o')||(str1[z]=='e')||(str1[z]=='i')||(str1[z]=='u')||(str1[z]=='y')||(str1[z]=='A')||(str1[z]=='O')||(str1[z]=='E')||(str1[z]=='U')||(str1[z]=='Y')||(str1[z]=='I'))
++kol;
else
++kol1;
}
str1[z]='\0';
if (kol>kol1)
{
str2[i]=&str1[r];
++i;
}
r=z+1;
kol1=0,kol=0;
}
else
++r;
}
if (i==0)
cout<<"В введённой строке нет слов с максимальной долей гласных букв.\n";
else
{
char final[300];
strcpy(final,str2[0]);
for (int g=1; g<i; ++g)
{
strcat(final," ");
strcat(final,str2[g]);
}
cout<<final<<endl;
}
}
помогите пожалуйста ее переделать, чтобы всместо чаровских были задействованы Строки String
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2011, 20:48     переделать чаровскую прогу по строкам в string
Посмотрите здесь:

Вопрос по строкам (string) - C++
нужно взять с клавиатуры 2 строки...ну я недолго думая решил воспользоваться методом getline(), потому как манипулятор skipws не работает...

Задача по строкам!String - C++
Помогите пожалуйста с задачей по строкам.. String Вводится предложение строка,вывести все слова с тремя буквами i,разделитель между...

Как переделать прогу?? - C++
Вот программа на языке си++. как её переделать в си??? там надо вроде cout изменить. помогите!условие: вывести 10 случайных чисел в...

Нужно переделать прогу! - C++
Нужно переписать код, чтобы не было меток)))) #include&lt;math.h&gt; #include&lt;stdio.h&gt; #include&lt;alloc.h&gt; #include&lt;conio.h&gt; ...

Переделать прогу с паскаля в Вижуал - C++
вот прога на Паскале, надо переделать под вижуал... срочно... http://pascal.sources.ru/cgi-bin/show.cgi?cat=incoming&amp;id=polynom ...

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

Как переделать прогу для работы с файлами - C++
Всем привет) Есть вот такая программа. Она выводит на консоль сообщение - находится ли точка на прямой или нет. Координаты точки -...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Алексей_123
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 51
27.11.2011, 13:35  [ТС]     переделать чаровскую прогу по строкам в string #2
вот основные функции, которыми можно пользоваться: assign, append, insert, replace, erase, find, rfind, find_first_of, find_last_of, find_first_not_of, find_last_not_of, compare, getline, c_str.
-=ЮрА=-
Заблокирован
Автор FAQ
27.11.2011, 13:40     переделать чаровскую прогу по строкам в string #3
Алексей_123, посмотрите как можно легче всё реализовать
Строки в С++, не могу понять что неправильно в программе
переделайте под себя, если что спрашивайте подскажу
Алексей_123
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 51
28.11.2011, 15:51  [ТС]     переделать чаровскую прогу по строкам в string #4
не могли бы вы мне подсказать, какие функции из моей программы мне заменять на stringовские?

Добавлено через 7 часов 5 минут
посоветуйте пожалуйста)

Добавлено через 18 часов 40 минут
ну так что?
-=ЮрА=-
Заблокирован
Автор FAQ
28.11.2011, 22:01     переделать чаровскую прогу по строкам в string #5
Алексей_123, мне не понятно ваше нежелание что то написать самому имея почти готовый аналог, хорошо вот код
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
#include <iostream>
#include <sstream>
using namespace std;
 
//Вернёт true если гласных в слове больше чем согласных
bool IsMoreVowels(string str)
{
    string vowels = "aeiouy";
    int length = str.length();
    int i, nVowels = 0;
    for(i = 0; i < length; i++)
    {
        if(vowels.find(tolower(str[i]),0) != -1)
            nVowels++;
    }
    return (length - nVowels) < nVowels;
}
 
int main()
{
    system("chcp 1251");
    char text[1024] = {0};
    cout<<"Введите строку (не более 1024 символов)\n";
    cin.getline(text, 10244);
 
    stringstream ss;
    ss.str(text);
    string str, output;
    while(ss>>str)
    {
        if(IsMoreVowels(str))
            output += (str + " ");
    }
    cout<<"Words with MoreVowels : "<<output.c_str()<<endl;
    system("pause");
    return 0;
}
Миниатюры
переделать чаровскую прогу по строкам  в string  
Алексей_123
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 51
28.11.2011, 22:45  [ТС]     переделать чаровскую прогу по строкам в string #6
большое спасибо, но я же просто просил дать мне подсказку с чего лучше было начать, и можно узнать еще,как вы пользуетесь программой, так как в вижуал студии 2008 у меня код не реализуется, даже после подключения русского языка (setlocale(LC_ALL, ".1251")
-=ЮрА=-
Заблокирован
Автор FAQ
28.11.2011, 22:53     переделать чаровскую прогу по строкам в string #7
Цитата Сообщение от Алексей_123 Посмотреть сообщение
так как в вижуал студии 2008 у меня код не реализуется, даже после подключения русского языка (setlocale(LC_ALL, ".1251")
- не знаю что там не запускается!Возожно студия кривая, скрин дебага прилагаю
Миниатюры
переделать чаровскую прогу по строкам  в string  
-=ЮрА=-
28.11.2011, 22:54
  #8

Не по теме:

Цитата Сообщение от Алексей_123 Посмотреть сообщение
setlocale(LC_ALL, ".1251");
- это не самая хорошая руссификация, к томуже setlocale(LC_ALL, "1251"); по моему должно быть

Алексей_123
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 51
28.11.2011, 23:05  [ТС]     переделать чаровскую прогу по строкам в string #9
после замены system("chcp 1251"); на system("chcp 1251"); все начало работать

Добавлено через 41 секунду
после замены на setlocale(LC_ALL, ".1251");
-=ЮрА=-
Заблокирован
Автор FAQ
28.11.2011, 23:15     переделать чаровскую прогу по строкам в string #10
Цитата Сообщение от Алексей_123 Посмотреть сообщение
все начало работать
- это означает что вы удовлтворены?
Алексей_123
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 51
28.11.2011, 23:17  [ТС]     переделать чаровскую прогу по строкам в string #11
спасибо еще раз
SleepMaster
28.11.2011, 23:37
  #12

Не по теме:

Ну ты плюсани Юре сообщения, он же старался

Алексей_123
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 51
28.11.2011, 23:51  [ТС]     переделать чаровскую прогу по строкам в string #13
а тут плюсы как-то на рейтинг влияют?)
SleepMaster
40 / 40 / 1
Регистрация: 26.11.2011
Сообщений: 80
29.11.2011, 00:01     переделать чаровскую прогу по строкам в string #14
Цитата Сообщение от Алексей_123 Посмотреть сообщение
а тут плюсы как-то на рейтинг влияют?)

Не по теме:

Я не знаю, лично мне бы просто было бы приятно. Человек на тебя время потратил, не логично было б ему "добавить рейтинга"?

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2011, 21:25     переделать чаровскую прогу по строкам в string
Еще ссылки по теме:

Можно ли данную прогу переделать в справочную систему компонентов компьютерной техники?!!! - C++
Помогите пожалуйста!!!!!!!!!!!! Можно ли данную прогу(учет книг в библиотеке) переделать в справочную систему компонентов компьютерной...

Выручайте! Нужно переделать прогу под двусвязный список.ничего не понимаю) - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; struct Node { int memSize; Node *Next; }; Node *BegList; using namespace...

Переделать задачу, с использованием <string.h> - C++
Обработку строки реализовать с помощью функций, описанных в &lt;string.h&gt; и (или) с использованием указателей. Память под строки выделять...

Переделать работу с текстом через string - C++
нужно этот код переделать с помощью строк string #pragma hdrstop #pragma argsused #include #include #include int...

Вектор vector<string> переделать в int - C++
Здравствуйте. Подскажите, а то что то совсем запутался Задача следующая создать вектор string наполнить его элементами 123. С этим я...


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

Или воспользуйтесь поиском по форуму:
Алексей_123
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 51
30.11.2011, 21:25  [ТС]     переделать чаровскую прогу по строкам в string #15
возникла проблема еще одна, программа не считает остальные символы разделителями между словами, как бы это реализовать?
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
#include <iostream>
#include <sstream>
using namespace std;
 
//Вернёт true если гласных в слове больше чем согласных
bool IsMoreVowels(string str)
{
    string vowels = "aeiouy";
    int length = str.length();
    int i, nVowels = 0;
    for(i = 0; i < length; i++)
    {
        if(vowels.find(tolower(str[i]),0) != -1)
            nVowels++;
    }
    return (length - nVowels) < nVowels;
}
 
int main()
{
    setlocale(LC_ALL, ".1251");
    char text[1024] = {0};
    cout<<"Введите строку (не более 1024 символов)\n";
    cin.getline(text, 1024);
 
    stringstream ss;
    ss.str(text);
    string str, output;
    while(ss>>str)
    {
        if(IsMoreVowels(str))
            output += (str + " ");
    }
    cout<<"Words with MoreVowels : "<<output.c_str()<<endl;
    system("pause");
    return 0;
}
Yandex
Объявления
30.11.2011, 21:25     переделать чаровскую прогу по строкам в string
Ответ Создать тему
Опции темы

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