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

Считать текст из файла и вывести на экран все слова текста, начинающиеся с гласной буквы - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ передать массив в функцию по значению http://www.cyberforum.ru/cpp-beginners/thread401692.html
Подскажите,пожалуйста. Нужно с клавиатуры ввести число строк-столбцов ( т е они меняются в зависимости от условия) и передать массив в функцию. Сам массив не меняется в функции. Как его объявить в обращении и заголовке?
C++ Считывание и запись в файл Доброго времен суток всем экпспертам в области С++ Имеется задания нужно записать числа(псевдослучайные) в текстовый файл "vvod" и отрицательные числа заменить на ноль и вывести в следующий файл "vivod" ! Я смог только в файл записать эти числа. Прошу помощи в хотя-бы в поиске и замене! #include <iostream> #include <fstream> #include <time.h> using namespace std; ofstream fp; http://www.cyberforum.ru/cpp-beginners/thread401689.html
C++ подскажите как правильно записать
Суть в чем, нужно текст последовательно циклически сдвинуть на m / 2 позиций, и построить новые m / 2 − 1 строк. Например в С++ это просто реализовать через append: for (int i=1; i<10; i++){ string str; str.append(string,i,len-i); str.append(string,0,i); } но как правильно тоже самое записать на Си? >< Подскажите что-нибудь, а то я уже запуталась :) не знаю, может я и...
C++ 4 задачи по основам программирования
Задание 1. Составить блок-схему и программу нахождения произведения всех членов арифметической прогрессии от 10 до 30 с шагом 1,15 Задание 2. Изображение Задание 3. Дана матрица А(n,m). Получить новую матрицу путём деления всех элементов исходной матрицы на элемент, наименьший по модулю. Задание 4. Дан одномерный массив из 10-ти чисел. Определить номер первого из встретившихся...
C++ используя только символьный вывод printf, вывести значение целой переменной k http://www.cyberforum.ru/cpp-beginners/thread401680.html
используя только символьный вывод, то есть функцию printf ("% c", s), где s - переменная типа char, вывести значение целой переменной k. (знак "+" не выводить)
C++ задача на римскую систему счисления Ввести число римскими цифрами (менее 4000 в арабской записи), учитывая следующие обозначения: I - 1, V - 5, X - 10, L - 50, C - 100, D - 500, M - 1000. Проверить правильность ввода исходных данных и напечатать это число арабскими цифрами. у меня получилось как-то вот так: #include <string.h> #include <stdio.h> #include <stdlib.h> #include <conio.h> int main () подробнее

Показать сообщение отдельно
PHOENIX_UA
3 / 3 / 2
Регистрация: 08.12.2011
Сообщений: 5
08.12.2011, 02:13     Считать текст из файла и вывести на экран все слова текста, начинающиеся с гласной буквы
Попробуйте вот этот код (конечно, можно было бы использовать и функции из библиотеки ctype.h):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include <stdio.h>
 
#define PATH_TO_FILE "text.txt"
#define MAX_LINE_LENGTH 256
#define VOWEL_LENGTH 12
 
char IsVowel(char ch)
{
    static const char vowel[VOWEL_LENGTH] = "aeiouyAEIOUY";
 
    int i;
 
    for (i = 0; i < VOWEL_LENGTH; i++) {
        if (vowel[i] == ch) {
            return (i < VOWEL_LENGTH / 2) ? vowel[i + VOWEL_LENGTH / 2] : vowel[i];
        }
    }
 
    return '\0';
}
 
int IsWordSeparator(char ch)
{
    int i;
    static const char * wordSeparators = " .,!?-+=\t\n\v";
 
    for (i = 0; wordSeparators[i] != '\0'; i++) {
        if (wordSeparators[i] == ch) {
            return 1;
        }
    }
 
    return 0;
}
 
int main() 
{
    char buf[MAX_LINE_LENGTH];
    unsigned int i;
    int inWord = 0, printWord = 0;
    char upper;
 
    FILE * fin = fopen(PATH_TO_FILE, "rt");
 
    if (fin == NULL) {
        printf("Failed to open file: %s\n", PATH_TO_FILE);
        return 1;
    }
 
    do {
        if (fgets(buf, MAX_LINE_LENGTH, fin) != NULL) {
            for (i = 0; buf[i] != '\0'; i++) {
                if (!IsWordSeparator(buf[i])) {
                    if (!inWord) {
                        inWord = 1;
                        if (upper = IsVowel(buf[i])) {
                            printWord = 1;
                            printf("%c", upper);
                            continue;
                        }
                    }
                    if (printWord) {
                        printf("%c", buf[i]);
                    }
                }
                else {
                    if (inWord) {
                        inWord = 0;
                        if (printWord) {
                            printf("\n");
                            printWord = 0;
                        }
                    }
                }
            }
        }
    }
    while (!feof(fin));
 
    fclose(fin);
    
    return 0;
}
 
Текущее время: 02:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru