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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.10.2011, 11:11   #1
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 301
По умолчанию проверка на неправильный ввод

Ничего в голову не приходит.Как реализовать следующее:При вводе одного слова(не символа) писало ошибка введите минимум 2 слова?Сделал если ничего не вводишь и если менее 2ух символов пишет ошибку,но как сделать что минимум 2 слова никак понять не могу.
Код:
#include <iostream>
#include <conio.h>
#include<string.h>
using namespace std;
 
const int MAX = 100;
 
int main()
{       
        char source[MAX];  
        char dest[MAX];   
        char *buf;      
        int n=1;        
        cout <<"Vvedite stroku: \n";
        cin.getline(source,MAX,'\n');   
        buf = strtok(source," ,.");     
        while(buf==0 || (strlen(source)<2) )  
               {
                          cout<<"Error.Vvedite stroku: \n";
                          cin.getline(source,MAX,'\n');
                          buf = strtok(source," ,.");    
           }
        dest[0] = 0;
        while (buf!='\0')      
        { 
                if ((n%2)==0)    
                {
                                                  
                        strrev(buf);     
                        strcat(dest,buf);
                        strcat(dest," ");
                }
                n++;                      
                buf = strtok('\0'," ,.");
        }
        cout <<endl<<"Resultat:\n"<< dest <<endl;
        getch();                         
}
a.n.o.n.i.m вне форума Ответить с цитированием
Старый 22.10.2011, 11:41   #2
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 301
По умолчанию

Код:
if(strlen(dest)!=0)
	    {
	        cout <<endl<<"Resultat:\n"<< dest <<endl;
	    }
	else
	    {
		 	cout<<"Error!"; 
        }
Дописал вот что,примерно работает.Но нужно еще улучшить чтобы после ошибки можно было еще раз ввести типа как если ничего не вводишь.Как сделать?
a.n.o.n.i.m вне форума Ответить с цитированием
Старый 22.10.2011, 13:04   #3
SteAlzzer
Пользователь
 
Аватар для SteAlzzer
 
Регистрация: 11.10.2011
Сообщений: 60
По умолчанию

в цикл, например запихнуть. Выходом из цикла будет выполнения условия "минимум 2 слова"
SteAlzzer вне форума Ответить с цитированием
Старый 22.10.2011, 15:05   #4
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 301
По умолчанию

как будет выглядеть в коде условие минимум два слова.Проблема в том что Это можно реализовать один разкак во втором посте,так как это стоит в конце кода и повторить не полуиться.Нужно чтобы можно было после ввода одного слова писало ошибку(не только один раз) и можно было ввести опять предложение,и оно его решало

Типа как с путым ввводиом если пусто пишет еще раз введите,опять пусто опять просит пока правильно не введешь и так же нужно если одно слово введено.У меня получается только если 1 раз вводить слово пишет ошибку а дальше если второй раз одно слово ввести пишет резльтат пустой,так не должно быть

Последний раз редактировалось a.n.o.n.i.m; 22.10.2011 в 15:07.
a.n.o.n.i.m вне форума Ответить с цитированием
Старый 22.10.2011, 15:14   #5
SteAlzzer
Пользователь
 
Аватар для SteAlzzer
 
Регистрация: 11.10.2011
Сообщений: 60
По умолчанию

Ну.. условие наличия двух слов в предложении - наличие пробела в строке.

ЦиклВвода(Все правильно ввели?)
"Введите два слова, пжлста"
-- Принимаем слово в Строку
-- ЦиклПрохода по элементам строки в поиске пробела
-- -- Нашли пробел, значит слово правильно, выходим из циклаПрохода и из ЦиклаВвода
-- -- Не нашли пробел, начинаем все заного
SteAlzzer вне форума Ответить с цитированием
Старый 23.10.2011, 09:57   #6
a.n.o.n.i.m
Форумчанин
 
Регистрация: 26.02.2011
Сообщений: 301
По умолчанию

Да такая мысль была с пробелом(алгоритм)
1)функцию для удаления пробелов в начале в вводимом предложении
2)Если после первого пробела идет не символ то ошибка ,иначе введено верно
a.n.o.n.i.m вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задание с циклами: ввод и проверка чисел.(Pascal) swillrocker Помощь студентам 4 04.05.2011 20:37
Неправильный ввод в адресной строке браузера Kapitann PHP 3 02.10.2010 22:13
неправильный user32.lib 547538594554849886 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 22.12.2009 21:27
неправильный запрос? dedyshka PHP 8 17.11.2009 20:27
Программа строит неправильный график xMass Помощь студентам 7 06.06.2008 19:04