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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2011, 09:39   #1
alex.dadaev
Новичок
Джуниор
 
Регистрация: 17.03.2011
Сообщений: 1
Смущение Поменять местами первое и последнее слова в предложении.

Не понимаю почему код печатает вместо последнего слова пустую, а вместо изменённой строки первое слово. Идея такова: отслеживаю в циклах начало первого слова fw_b , его конец fw_e. Тоже самое для последнего слова: lw_b и lw_e. Потом записываю что посередине и соединяю в нужном мне подярке.

Код:
#include <iostream>

using namespace std;

int main (int argc, char * const argv[]) 
{
    
    std::cout << "Lab1 \n";
	
	char* str = new char[50];
		cout << "Enter string" << endl;
		fflush(stdin);
		gets(str);
			
			int len = strlen(str);
						
	int fw_e, fw_b;
	int lw_e,lw_b;		
	char *str_final = new char[30];
	char* first_word = new char[20];
	char* last_word = new char[20];
	char* middle = new char[20];

	for(int i=0;i<=len;++i) {
		if(str[i]!=' ') {
			fw_b=i;
			break;
		}
	}  std::cout << fw_b << std::endl;
	
	for(int i=fw_b;i<=len;++i) {
		if(str[i]==' ') {
			fw_e=i-1;
			break;
		}
	}   std::cout << fw_e << std::endl;
	
	for(int j=len;j>0;j--) {
		if(str[j]!=' ') {
			lw_e=j-1;
			break;
		}
	}	std::cout << lw_e << std::endl;
	
	for(int j=lw_e;j>0;j--) {
		if(str[j]==' ') {
			lw_b=j+1;
			break;
		}
	}	std::cout << lw_b << std::endl;	
			
	for(int k=fw_b;k<=fw_e;++k) {
		first_word[k]=str[k];
	}	std::cout << first_word << std::endl;
	
	for(int k=lw_b;k<=lw_e;++k) {
		last_word[k]=str[k];
	}	std::cout << last_word << std::endl;
	
	for(int x=fw_e+1;x<=lw_b-1;++x) {
		middle[x] = str[x];
	}
		
	strcat(str_final,last_word);
	strcat(str_final,middle);
	strcat(str_final,first_word);
	
	std::cout << str_final << std::endl;
	
	
	return 0;
}
alex.dadaev вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поменять местами слова в ячейке Нюни Microsoft Office Excel 28 05.12.2017 11:28
поменять местами слова в предложении (C++) Slicker Общие вопросы C/C++ 15 10.03.2011 10:17
(Си)Поменять местами наибольшее и наименьшее слово в предложении kilgoreq Помощь студентам 0 02.12.2010 20:17
поменять местами слова в предложении (C++) Slicker Помощь студентам 3 30.05.2009 17:57