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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Структуры и объединения http://www.cyberforum.ru/cpp-beginners/thread34866.html
Помогите пожалуйста. В списке студентов группы вычислить количество студентов с именами: Наталья, Владимир, Роман
C++ Матрица и процедура Народ завтра зачёт помогите, буду очень блогодарен!!! 1.дано целочисленную матрицу размера 3 х4. Найти среднее арифметическое наибольшего и наименьшего значений ее элементов. 2.дани натуральное число n, символы s1,...,sn. Известно, что среди данных символов есть хотя бы один, отличающийся от пробила. Описать процедуру, которая превращает заменяет каждую внутреннюю группу пробелов одним... 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. Просмотров 1980. Ответов 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. Не знаю как разбить тогда этот текст. Может ктонибудь подскажет или на мысль наведет как записать? Заранее спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru