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

Удаление знака из конца строки. - C++

Восстановить пароль Регистрация
 
Anamnesis
0 / 0 / 0
Регистрация: 07.11.2010
Сообщений: 11
22.05.2011, 14:38     Удаление знака из конца строки. #1
Здравствуйте, требуется ваша помощь.
Есть программа, которая считывает английский текст из файла и выводит на экран слова, начинающиеся с гласных букв.

Так вот, если в конце слова стоит знак, то он цепляется вместе с ним. Помогите убрать.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <fstream>
#include <string>
 
int main(){
 
    std::string slovo; 
    char sl;
    std::ifstream infile("F:\\file.txt");
    while(!infile.eof())
    {
        infile >> slovo;
        sl = toupper(slovo.at(0));
        if (sl == 65 || sl == 69 || sl == 73 || sl == 79 || sl == 85 || sl == 89){
            std::cout << slovo << std::endl;}
    
    }
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
22.05.2011, 14:47     Удаление знака из конца строки. #2
Anamnesis, А алгоритмами пользоваться не пробовали?
Anamnesis
0 / 0 / 0
Регистрация: 07.11.2010
Сообщений: 11
22.05.2011, 14:50  [ТС]     Удаление знака из конца строки. #3
ForEveR, какими именно?
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
22.05.2011, 15:53     Удаление знака из конца строки. #4
Anamnesis, Например.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <fstream>
#include <string>
#include <algorithm>
#include <cctype>
#include <sstream>
 
int main()
{
    const std::string vowels = "AEIOUYaeiouy";
    std::string string;
    std::ifstream in_f("F:\\file.txt");
    while(!in_f.eof())
    {
       std::getline(in_f, string);
       std::replace_if(string.begin(), string.end(), ispunct, ' ');
       std::istringstream ist(string);
       while(ist >> string)
          if(vowels.find(*string.begin()) != std::string::npos)
             std::cout << string << '\n';
     }
     return 0;
}
Anamnesis
0 / 0 / 0
Регистрация: 07.11.2010
Сообщений: 11
22.05.2011, 16:15  [ТС]     Удаление знака из конца строки. #5
ForEveR, спасибо, будем разбираться.
Yandex
Объявления
22.05.2011, 16:15     Удаление знака из конца строки.
Ответ Создать тему
Опции темы

Текущее время: 11:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru