Форум программистов, компьютерный форум, киберфорум
Наши страницы

считать текст из файла и вывести на экран слова меняя каждые соседние между собой - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Структуры и объединения http://www.cyberforum.ru/cpp-beginners/thread34866.html
Помогите пожалуйста. В списке студентов группы вычислить количество студентов с именами: Наталья, Владимир, Роман
C++ Матрица и процедура Народ завтра зачёт помогите, буду очень блогодарен!!! 1.дано целочисленную матрицу размера 3 х4. Найти среднее арифметическое наибольшего и наименьшего значений ее элементов. 2.дани... http://www.cyberforum.ru/cpp-beginners/thread34864.html
C++ функция и строки
Составить функцию, которая позволяет определить позицию первого вхождения в заданую строку любого символа с другой заданной строки. Результатом работы функции должна быть единица, если первая строка...
РАБОТА С ФАЙЛАМИ И СТРОКАМИ... C++
Написать программу, которая считывает текст из файла и выводит на экран сначала вопросительные предложения, а затем восклицательные......ПОСЛЕДНЯЯ ОСТАЛАСЬ,ПОМОГИТЕ ,СЕССИЯ НА НОСУ!!
C++ Динамический массив. http://www.cyberforum.ru/cpp-beginners/thread34842.html
Есть такой момент в программе: ... char *r; int a,b,c,dl_len; ... printf("a= "); scanf("%d",&a); printf("b= "); scanf("%d",&b); printf("c= ");
C++ Создать массив структур Дайте плз рекомендации по решению. Дана информация о четырех вузах. Структура имеет вид: название вуза, число студентов, количество факультетов, количество кафедр. Вывести данные об общем числе... подробнее

Показать сообщение отдельно
danikgavr
1 / 1 / 0
Регистрация: 05.12.2008
Сообщений: 4

считать текст из файла и вывести на экран слова меняя каждые соседние между собой - C++

18.05.2009, 19:28. Просмотров 1995. Ответов 0
Метки (Все метки)

Есть прога: считать текст из файла и вывести на экран слова меняя каждые соседние между собой. Есть код рабочий :
Код
#include <iostream>
using std::cout;
#include <fstream>
using std::ifstream;
#include <vector>
using std::vector;
#include <string>
using std::string;
#include <conio.h>

// Функция проверяет, является ли символ ch буквой
// (Работает только с английскими буквами).
bool is_letter(char ch);

int main(){
// Читаем текст из файла.
ifstream ifs("input.dat");
string str;
char c;
while((c=ifs.get())!=EOF){
str += c;
}
// Разбиваем текст на подстроки.
vector<string> vec;
string elem;
for(int i=0;i<str.length();i++){
char ch = str[i];
if(is_letter(ch)){
if(((i-1)>=0)&&(!is_letter(str[i-1]))){
vec.push_back(elem);
elem = string(1, ch);
}else elem+=ch;
}else{
if(((i-1)>=0)&&(is_letter(str[i-1]))){
vec.push_back(elem);
elem = string(1, ch);
}else elem+=ch;
}
}
vec.push_back(elem);
// Меняем местами парные слова, не трогая знаки препинания.
string toReplace;
int replacePos;
for(int i=0;i<vec.size();i++){
if(is_letter(vec[i][0])){
if(toReplace.size()==0){
toReplace = vec[i];
replacePos = i;
}else{
string temp = vec[i];
vec[i] = toReplace;
vec[replacePos] = temp;
toReplace = string();
}
}
}
// Выводим числа в консоль.
for(int i=0;i<vec.size();i++){
cout << vec[i];
}
// Чтобы консоль не закрылась после вывода результатов ожидаем
// нажатие клавиши.
getch();
return 0;
}

bool is_letter(char ch){
return (ch>='a')&&(ch<='z');
}
Но есть проблемка, мне нужно через string. Не знаю как разбить тогда этот текст. Может ктонибудь подскажет или на мысль наведет как записать? Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru