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

строковые - C++

Восстановить пароль Регистрация
 
Iliabobr
3 / 3 / 1
Регистрация: 04.11.2009
Сообщений: 98
11.04.2010, 14:49     строковые #1
Привет всем)
Вот такая штука
Написать программу, которая считывает английский текст из файла и выводит на экран слова, начинающиеся с гласных букв
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2010, 14:49     строковые
Посмотрите здесь:

C++ C++ строковые
Строковые данные C++
C++ Строковые данные
Строковые массивы. C++
Строковые переменные. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DenzeL
0 / 0 / 0
Регистрация: 03.05.2010
Сообщений: 7
17.05.2010, 11:40     строковые #2
Поддерживаю Iliabobr'a! Задачка непонятная для меня оказалась, выручайте народ)))
Maxim Prishchepa
Эксперт С++
 Аватар для Maxim Prishchepa
1762 / 985 / 60
Регистрация: 29.03.2010
Сообщений: 2,977
17.05.2010, 11:45     строковые #3
читаете строку, разбиваете её на массив слов, создаёте массив согласных букв, сравниваете в цикле первую букву в массиве строк с элементами в массиве согласных букв, если совпадает - выводим на экран и начинаем по новой со следующим словом. Если есть конкретные вопросы по коду - пишите поможем, весь код за Вас писать - лень!
Iliabobr
3 / 3 / 1
Регистрация: 04.11.2009
Сообщений: 98
22.05.2010, 20:06  [ТС]     строковые #4
ну вот я тут посидел часок и у меня вот такая штука получилась

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
 #include <iostream>
#include <stdlib.h>
#include <string.h>
#include<stdio.h>
using namespace std;
int main()
    {
        FILE *fin;
        fin=fopen("text.txt", "r");
        if (!fin) {puts("ERROR"); return 1;}
        fseek(fin, 0, SEEK_END);
        long len = ftell(fin);
        char *buf = new char[len+1];
 
        const int l_block = 1024;
        int num_block = len/l_block;
        fseek(fin, 0, SEEK_SET);
        fread(buf, l_block, num_block + 1, fin);
        buf[len]= '\0';
 
        long i=0;
        long n=0;
        if(buf[0]==' '){
        for (i=0;i<ftell(fin)-2;i++){
            if (buf[i]==' '){
 
                if (buf[i+1]=='e' || buf[i+1]=='E' || buf[i+1]=='u' || buf[i+1]=='U' || buf[i+1]=='i' || buf[i+1]=='I' || buf[i+1]=='o' || buf[i+1]=='O' || buf[i+1]=='a' || buf[i+1]=='A' || buf[i+1]=='y' || buf[i+1]=='Y'  ){
                    cout<<buf[i+1];
                    while(buf[i+2]!=' '){
                        cout<<buf[i+2];i++;}
                }
            cout<<' ';
        }}} 
        if(buf[0]!=' '){
            if (buf[0]=='e' || buf[0]=='E' || buf[0]=='u' || buf[0]=='U' || buf[0]=='i' || buf[0]=='I' || buf[0]=='o' || buf[0]=='O' || buf[0]=='a' || buf[0]=='A' || buf[0]=='y' || buf[0]=='Y'  ){
                cout<<buf[0];
                while(buf[i+1]!=' '){cout<<buf[i+1];i++;}cout<<' ';}}
        
 
        if(buf[0]!=' '){
        for (i=0;i<ftell(fin)-3;i++){
            if (buf[i]==' '){
            if (buf[i+1]=='e' || buf[i+1]=='E' || buf[i+1]=='u' || buf[i+1]=='U' || buf[i+1]=='i' || buf[i+1]=='I' || buf[i+1]=='o' || buf[i+1]=='O' || buf[i+1]=='a' || buf[i+1]=='A' || buf[i+1]=='y' || buf[i+1]=='Y'  ){
                cout<<buf[i+1];
                while(buf[i+2]!=' '){
                    cout<<buf[i+2];i++;}
                        }
                    
                    cout<<' ';
        }}}
        return 0;
        }
Добавлено через 1 минуту
ну я тока без массивов делал
Yandex
Объявления
22.05.2010, 20:06     строковые
Ответ Создать тему
Опции темы

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