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

find_first_of, разбор полётов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Из удалить из массива отрицательные элементы, стоящие на четных местах и сжать его, заполнив нулями. http://www.cyberforum.ru/cpp-beginners/thread1071135.html
Из одномерного массива,состоящего из n целочисленных элементов, удалить отрицательные элементы, стоящие на четных местах. Сжать массив.Оставшиеся после удаления места заполнить нулями
C++ проверка и вывод Разработать функцию rectPS(x1, y1, x2, y2, P, S), вычисляющую периметр P и площадь S прямоугольника со сторонами, параллельными осям координат, по координатам (x1, y1), (x2, y2) его противоположных вершин (x1, y1, x2, y2 — входные, P и S — выходные параметры). В качестве результирующего значения функция должна возвращать истину, если прямоугольник не является вырожденным (т.е. одна из его сторон... http://www.cyberforum.ru/cpp-beginners/thread1071104.html
Массив. Есть ли четные числа в верхнем левом и нижнем левом углу? Поменять местами элементы в верхнем правом и нижнем правом углу C++
Создать массив размерностью M×N, элементы которого читаются из внешнего файла (*.txt, *.xls и т.п.). Вывести его на экран. Проверить: - есть ли четные числа в верхнем левом и нижнем левом углу; - поменять местами элементы в верхнем правом и нижнем правом углу.
Найти все целые числа из промежутка от 1 до 300 у которых ровно пять дели-телей C++
Найти все целые числа из промежутка от 1 до 300 у которых ровно пять дели-телей.
C++ Составить программу, которая уменьшает первое введенное число в два раза, если оно больше второго введенного числа по абсолютной величине. Числа вводя http://www.cyberforum.ru/cpp-beginners/thread1071082.html
Составить программу, которая уменьшает первое введенное число в два раза, если оно больше второго введенного числа по абсолютной величине. Числа вводятся с клавиатуры пользователем.
C++ Из заданной строки получить новую, заменив в ней все сочетания «abcd» на «abc» Помогите с задачей, кто знает, как сделать проверку? Т.е. чтобы при вводе цифр, пробелов или пустой строки выводилось сообщение об этом и программа возвращалась в первоначальное состояние ввода букв? #include <string.h> #include <iostream.h> #include<stdio.h> int main() { char st, sl,s={'\0'}; int k=0,i,t=0,j; cout<<"Vvedite simvoly"<<endl; cin>>st; подробнее

Показать сообщение отдельно
G_
0 / 0 / 0
Регистрация: 23.11.2013
Сообщений: 17

find_first_of, разбор полётов - C++

14.01.2014, 15:10. Просмотров 1052. Ответов 1
Метки (Все метки)

Есть задание:
В произвольном тексте на английском языке, содержащем не более
10 строк, в каждой строке не более 80 символов. Заменить первую букву каждого слова символом «пробел». Слово – это группа символов, заключенная между разделителями (пробел, запятая, точка и т.д.). Полученный текст напечатать.

Есть почти корректно работающая программа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
using namespace std;
int main()
{
    freopen("in.txt", "r", stdin);
    freopen("out.txt", "w", stdout);
    string str;
    int index;
    while(cin >> str)
    {
        index = str.find_first_of('abcdefghigklmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ');
        str[index]= ' ';
        cout << str;
        
    }
    return 0;
}
Проблема: не понимаю, при таком использовании функции find_first_of у меня появляются ошибки, а при таком:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
using namespace std;
int main()
{
    freopen("in.txt", "r", stdin);
    freopen("out.txt", "w", stdout);
    string str;
    int index;
    while(cin >> str)
    {
        index = str.find_first_of(' ,.!');
        str[index+1]= ' ';
        cout << str;
        
    }
    return 0;
}
тоесть, немного обратном в принципе, всё работает. Но, опять же, если я допишу ещё хоть один символ разделения в строку
C++
1
index = str.find_first_of(' ,.!');
то всё снова перестанет работать.
Помогите разобраться с функцией.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru