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

Не правильно прописана программа - C++

Восстановить пароль Регистрация
 
Rezvanov
1 / 1 / 0
Регистрация: 22.10.2011
Сообщений: 71
08.06.2013, 12:01     Не правильно прописана программа #1
не могу ввести строку. Могу ввести только количество слов, и сами слова, а надо еще ввести строку и ответ не выводится

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
#include "stdafx.h"
#include <iostream>
#include <string>
#include <windows.h>
 
using namespace std;
 
void main (){
string s;    //Создали объект класса string, с помощью конструктора по умолчанию
string masslov[10];
int N,i;    
cout<<"Vveditekolichestvoslov v nabore: ";
cin>>N;
for (i=0;i<N;i++){
cout<<"Vvediteslovo #"<<i<<" : ";
cin>>masslov[i];
}
cout<<"Vveditestroku:\n";
getline(cin,s);    //Считали строку из потока cin
string razd=" ,.:";
/*Создали объект класса string, с помощью конструктора копирования для хранения гласных*/
string s1=s;   /* Скопировали строку s в строку s1 с помощью переопредленной операции = */
string word;   // Создали объект класса string для хранения выделенного слова
char n= s1.find_first_of(razd);
/*Нашли позицию первого разделителя в строке s1*/
while (n!=-1){
if (n){
word=s1.substr(0,n);
/*Сохранили подстроку до разделителя как очередной элемент массива */
for (i=0;i<N;i++)
if (word==masslov[i]){
cout<<word<<endl;
break;
}
}
s1=s1.substr(n+1);
/*Далее рассматриваем только оставшуюся часть строки*/
n=s1.find_first_of(razd);//Нашли позицию очередного
//разделителя
}
word=s1; //Обработка последнего слова в строке
for (i=0;i<N;i++)
if (word==masslov[i]){
cout<<word<<endl;
break;
}
system("pause");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.06.2013, 12:01     Не правильно прописана программа
Посмотрите здесь:

C++ Правильно ли написана программа
Правильно ли работает программа? C++
C++ Программа работает не правильно
правильно ли сделана программа C++
C++ Не правильно работает программа
Программа правильно сохраняет, но не правильно считывает матрицу из файла C++
Программа не правильно дешифрует C++
Правильно ли написана программа? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Smile11
6 / 6 / 0
Регистрация: 23.09.2012
Сообщений: 39
08.06.2013, 20:09     Не правильно прописана программа #2
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
#include <iostream>
#include <string>
#include <windows.h>
 
using namespace std;
 
int main (){
string s;    //ÑîçäГ*ëè îáúåêò ГЄГ«Г*Г±Г±Г* string, Г± ïîìîùüþ ГЄГ®Г*ñòðóêòîðГ* ГЇГ® óìîë÷Г*Г*ГЁГѕ
int N,i;    
cout<<"Vveditekolichestvoslov v nabore: ";
cin>>N;
_flushall();
string* masslov = new string [N];
for (i=0;i<N;i++){
cout<<"Vvediteslovo #"<<i<<" : ";
getline(cin,masslov[i]);
}
cout<<"Vveditestroku:\n";
getline(cin,s);    //Ñ÷èòГ*ëè ñòðîêó ГЁГ§ ïîòîêГ* cin
string razd=" ,.:";
/*ÑîçäГ*ëè îáúåêò ГЄГ«Г*Г±Г±Г* string, Г± ïîìîùüþ ГЄГ®Г*ñòðóêòîðГ* êîïèðîâГ*Г*ГЁГї äëÿ õðГ*Г*ГҐГ*ГЁГї ГЈГ«Г*Г±Г*ûõ*/
string s1=s;   /* ÑêîïèðîâГ*ëè ñòðîêó s Гў ñòðîêó s1 Г± ïîìîùüþ ïåðåîïðåäëåГ*Г*îé îïåðГ*öèè = */
string word;   // ÑîçäГ*ëè îáúåêò ГЄГ«Г*Г±Г±Г* string äëÿ õðГ*Г*ГҐГ*ГЁГї âûäåëåГ*Г*îãî ñëîâГ*
char n= s1.find_first_of(razd);
/*ГЌГ*øëè ïîçèöèþ ïåðâîãî Г°Г*çäåëèòåëÿ Гў ñòðîêå s1*/
while (n!=-1){
if (n){
word=s1.substr(0,n);
/*ÑîõðГ*Г*èëè ïîäñòðîêó äî Г°Г*çäåëèòåëÿ ГЄГ*ГЄ î÷åðåäГ*îé ýëåìåГ*ГІ Г¬Г*Г±Г±ГЁГўГ* */
for (i=0;i<N;i++)
if (word==masslov[i]){
cout<<word<<endl;
break;
}
}
s1=s1.substr(n+1);
/*Г„Г*ëåå Г°Г*Г±Г±Г¬Г*òðèâГ*ГҐГ¬ òîëüêî îñòГ*ГўГёГіГѕГ±Гї Г·Г*Г±ГІГј ñòðîêè*/
n=s1.find_first_of(razd);//ГЌГ*øëè ïîçèöèþ î÷åðåäГ*îãî
//Г°Г*çäåëèòåëÿ
}
word=s1; //ГЋГЎГ°Г*áîòêГ* ïîñëåäГ*ГҐГЈГ® ñëîâГ* Гў ñòðîêå
for (i=0;i<N;i++)
if (word==masslov[i]){
cout<<word<<endl;
break;
}
system("pause");
return 0;
}
Теперь можна вводить и строки, но я не пойму какой должно вивести результат...
Yandex
Объявления
08.06.2013, 20:09     Не правильно прописана программа
Ответ Создать тему
Опции темы

Текущее время: 21:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru