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

Строки (вывести все слова, содержащие только латинские буквы) - C++

Восстановить пароль Регистрация
 
hellolesto
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 10
11.12.2012, 01:31     Строки (вывести все слова, содержащие только латинские буквы) #1
Здравствуйте, нужно вывести все слова, содержащие только латинские буквы. Задаётся последовательность, в которой слова разделены запятыми, оканчивается она точкой. В написанном из слова "abcД" выведется "abc", а не должно вообще ничего выводиться. Не знаю, как это реализовать. Заранее огромное спасибо.
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
#include "stdafx.h"
#include "conio.h"
#include "iostream"
#include "MyCrt.h"
using namespace std;
int main()
{
    //Задаем массив, ввод заканчивается символом ".";
    setlocale(0,"");
    TextColor(0x1f);
    int s=0;
    char posl[181];
    cout<<"Введите последовательность.\n";
    for(int i=0;i<181;i++)
    {
        cin>>posl[i];
        s++;
        if (posl[i]=='.')
            break;
    }
    //Выводим массив;
    cout<<"Полученная последовательность:";
    for(int i=0;i<s;i++)
    {
        cout<<posl[i];
    }
    cout<<endl;
    //Вывод слов из латинских букв.
    cout<<"Слова из латинских букв:\n";
    for(int i=0;i<s;i++)
    {
        if ((posl[i]>='a')&&(posl[i]<='z'))
        {
            cout<<posl[i];
            if(posl[i+1]==',')
                cout<<",";
        }
 
    }
    cout<<endl;
    system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2012, 01:31     Строки (вывести все слова, содержащие только латинские буквы)
Посмотрите здесь:

C++ Вывести на экран слова, содержащие 3 буквы.
C++ Вывести на экран слова, содержащие три буквы
C++ В предложении найти и вывести на экран все слова, содержащие ровно две буквы “d”
C++ Найти в тексте слова, в которых присутствуют только заглавные латинские буквы
C++ Вывести на экран слова, содержащие три буквы.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Otshelnik
0 / 0 / 0
Регистрация: 10.10.2012
Сообщений: 8
11.12.2012, 02:15     Строки (вывести все слова, содержащие только латинские буквы) #2
Держи. Там криво проверялось на принадлежность к английскому алфавиту, поэтому на скорую руку такая проверка.

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
#include "stdafx.h"
#include "conio.h"
#include "iostream"
//#include "MyCrt.h"
using namespace std;
int main()
{
    //Задаем массив, ввод заканчивается символом ".";
    setlocale(0,"");
   // TextColor(0x1f);
    int s=0;
    char posl[181];
    cout<<"Введите последовательность.\n";
    for(int i=0;i<181;i++)
    {
        cin>>posl[i];
        s++;
        if (posl[i]=='.')
            break;
    }
    //Выводим массив;
    cout<<"Полученная последовательность:";
    for(int i=0;i<s;i++)
    {
        cout<<posl[i];
    }
    cout<<endl;
    //Вывод слов из латинских букв.
    cout<<"Слова из латинских букв:\n";
    int j = 0;
    bool IsRus = false;
 
    for(int i=j;i<s;i++)
    {
        j = i;
        while((posl[j] != ',' && posl[j] != ' ' && posl[j] != '.') && j < s)
        {
            if ((posl[i]!='a')&&(posl[i]!='b')&&(posl[i]!='c')&&(posl[i]!='d')&&(posl[i]!='e')&&
                (posl[i]!='f')&&(posl[i]!='g')&&(posl[i]!='h')&&(posl[i]!='i')&&(posl[i]!='j')&&
                (posl[i]!='k')&&(posl[i]!='l')&&(posl[i]!='m')&&(posl[i]!='n')&&(posl[i]!='o')&&
                (posl[i]!='p')&&(posl[i]!='r')&&(posl[i]!='s')&&(posl[i]!='t')&&(posl[i]!='u')&&
                (posl[i]!='v')&&(posl[i]!='w')&&(posl[i]!='x')&&(posl[i]!='y')&&(posl[i]<='z'))
                IsRus = true;
            j++;
        }
        if(IsRus)
        {
            i = j;
            IsRus = false;
            cout<<posl[i];
            if(posl[i+1]==',')
                cout<<",";
        }
        else    
        {
            for(; i < j; i ++)
            {
                if ((posl[i]>='a')&&(posl[i]<='z'))
                {
                    cout<<posl[i];
                    if(posl[i+1]==',')
                        cout<<",";
                }
            }
        }
    }
    cout<<endl;
    system("pause");
    return 0;
}
hellolesto
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 10
11.12.2012, 02:39  [ТС]     Строки (вывести все слова, содержащие только латинские буквы) #3
Спасибо!
Сейчас гляну и буду пробовать дальше.
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
11.12.2012, 07:27     Строки (вывести все слова, содержащие только латинские буквы) #4
Otshelnik, за условие в строках 38-42 надо руки отрывать.
hellolesto
0 / 0 / 0
Регистрация: 28.11.2012
Сообщений: 10
11.12.2012, 23:42  [ТС]     Строки (вывести все слова, содержащие только латинские буквы) #5
Цитата Сообщение от 0x10 Посмотреть сообщение
Otshelnik, за условие в строках 38-42 надо руки отрывать.
Как можно оформить его лучше?
Yandex
Объявления
11.12.2012, 23:42     Строки (вывести все слова, содержащие только латинские буквы)
Ответ Создать тему
Опции темы

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