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

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

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

Показать сообщение отдельно
danikgavr
1 / 1 / 0
Регистрация: 05.12.2008
Сообщений: 4
18.05.2009, 19:28     считать текст из файла и вывести на экран слова меняя каждые соседние между собой
Есть прога: считать текст из файла и вывести на экран слова меняя каждые соседние между собой. Есть код рабочий :
Код
#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. Не знаю как разбить тогда этот текст. Может ктонибудь подскажет или на мысль наведет как записать? Заранее спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 17:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru