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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2010, 20:38   #1
jack-fighter
Новичок
Джуниор
 
Регистрация: 22.12.2010
Сообщений: 3
По умолчанию Обработка текста C++

Слова текста из малых латинских букв записаны не менее чем через один пробел; текст оканчивается точкой. БЕЗ ИСПОЛЬЗОВАНИЯ конструкции STRING:
а) написать программу ввода такого текста с клавиатуры;
б) напечатать слова текста в обратном порядке букв. Слова печатать через один пробел, без точки.
Заранее благодарен!
Возможно вознагрождение
jack-fighter вне форума Ответить с цитированием
Старый 22.12.2010, 21:16   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

а) Ну в принципе cin.getline
б) Точно не проверял
Код:
char temp[256];
int j = 0;
for (i=0; i< strlen(stroka); i++)
{
    if (stroka[i] != ' ')
    {
         temp[j] = stroka[i];
         j++;
     }
     else 
     {
         for (int k = (strlen(temp) - 1); k >= 0; k--)
         {
              cout << temp[k];
          }
          j = 0;
          cout << ' ';
     }
}
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 23.12.2010, 09:19   #3
jack-fighter
Новичок
Джуниор
 
Регистрация: 22.12.2010
Сообщений: 3
По умолчанию

и вот ввод и разбиение на слова(строки)
int main()
{

char line[80];

cout<<"Введите строку из латинских букв:"<<endl;

gets(line);

char* WordArr[40];

int n=0;

int fl_w=0;

for (int i=0; line[i]!='.';i++)
{
if(line[i]==' ' && fl_w==0)
continue;
else if(line[i]==' ' && fl_w==1)
{
line[i]='\0';
fl_w=0;
}
else if(line[i]!=' ' && fl_w==0)
{
WordArr[n++]=&line[i];
fl_w=1;
}
}
Надо соединить и еще сделать проверку,что-то типо
if ( (s[i][j]>'z' || s[i][j]<'a') && s[i][j]!=' ' && s[i][j]!='.') i=i-1; //если не малая латинская, ниче не происходит
я так понимаю алгоритм должен быть примерно такой:
считывается текст
вывод текста
разбивается на строки(слова)
потом обрабатываются строки(слова) переварачмваются задом на перед
вывод
Пример выполнения программы(программа должна выглядеть так):
Введите строку из малых латинских букв: (вводим допустим: hi jack good day.)
hi jack good day.
Измененный текст:
ih kcaj doog yad.
для продолжения....
У меня почему-то не получается...помогите плз)
jack-fighter вне форума Ответить с цитированием
Старый 24.12.2010, 21:25   #4
jack-fighter
Новичок
Джуниор
 
Регистрация: 22.12.2010
Сообщений: 3
По умолчанию

Ап помогите плз
jack-fighter вне форума Ответить с цитированием
Старый 24.12.2010, 23:56   #5
kaljan775
:D
Форумчанин
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Сообщений: 570
По умолчанию

наслаждайтесь :D

Код:
#include <iostream>

using namespace std;
void main(){
	char text[200];
	cin.getline(text,sizeof(text),'.');//вводится строка, сохраняется все до точки

	for (int i=strlen(text)-1;i>=0;i--){//начиная с последнего слова ищем непробельные символы
		if (text[i]!=' '){	//если найден непробельный символ
			for (int j=i-1;j>=0;j--){//начинаем искать первый пробел, это будет слово
				if((text[j]==' ')||(j==0)){//если найден пробел, то мы идем слева направо, печатая слово
					for (int k=j;k<=i;k++)//выводим слова слева направо, в обратном порядке
						if (text[k]!=' ')//чтобы не было пробела перед выводом слов
							cout<<text[k];
					cout<<" ";//выводим пробел
					i=j;//чтобы не выводит куски последнего слова по нескольку раз, сдвигаем i налево
				}
			}
		}
	}
system("pause");
}
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery

Последний раз редактировалось kaljan775; 25.12.2010 в 00:32.
kaljan775 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка текста DOC26 Помощь студентам 1 23.10.2010 13:25
Обработка текста StillFree Microsoft Office Word 5 21.06.2009 05:59
Обработка текста JRcoker Общие вопросы Delphi 5 31.07.2008 23:35
Обработка текста Absent Помощь студентам 2 20.05.2008 23:17
Обработка текста Absent Помощь студентам 1 10.05.2008 19:56