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

Для каждого слова определить, является ли оно корректным именем - C++

Восстановить пароль Регистрация
 
MaksymMykytuk
0 / 0 / 0
Регистрация: 14.09.2013
Сообщений: 9
06.03.2014, 19:24     Для каждого слова определить, является ли оно корректным именем #1
1. Вводится массив слов. Для каждого слова определить, является ли оно корректным именем (первая буква - буква, остальные - буквы, цифры или подчеркивания).

2. Усовершенствовать предыдущую программу, так чтобы она могла распознавать служебные слова (if, for, do, while, switch, const, int, long) и считала их недопустимыми.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2014, 19:24     Для каждого слова определить, является ли оно корректным именем
Посмотрите здесь:

Для каждого слова первого предложения определить, входит ли оно во второе предложение C++
Для каждого слова первого предложения определить, вхо-дит ли оно во второе предложение C++
C++ Ввести пятизначное число и определить, является ли оно палиндромом
Дано слово. Определить, является ли оно анаграммой другого слова C++
Для каждого из некоторого количества натуральных чисел указать, является ли оно числом Фибоначчи C++
Определить, является ли e-mail корректным C++
C++ По заданному числу N определить, является ли оно целым

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
06.03.2014, 20:42     Для каждого слова определить, является ли оно корректным именем #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
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <memory.h>
#include <ctype.h>
 
#include <iostream>
 
using namespace std;
 
int main(int argc, char* argv[])
{
    int num_words = 0;
    std::cout << "Enter the number of words: "; std::cin >> num_words;
 
    char** pwords = new char*[num_words];
    memset((void*)pwords, 0x00, 4 * num_words);
 
    static char word[256] = "\0";
    for (int index = 0; index < num_words; index++)
    {
        pwords[index] = new char[256];
        std::cout << "Enter a word " << index << ": "; std::cin >> pwords[index];
    }
 
    std::cout << endl << endl;
 
    char* keywd[] = { "if", "for", "do", "while", "switch", "const", "int", "long", "\0" };
    for (int index = 0; index < num_words; index++)
    {
        char* word = pwords[index]; 
        bool wdc1 = false, wdc2 = false, wdc3 = false;
        for (int ntype = 0; ntype < 3 && isalpha(*word); ntype++)
            for (int index = 1; word[index] != '\0'; index++)
                if (ntype == 0 && isalpha(word[index]))      wdc1 = true;
                else if (ntype == 1 && isdigit(word[index])) wdc2 = true;
                else if (ntype == 2 && word[index] == '_')   wdc3 = true;
 
        bool wdc4 = false;
        for (int nindex = 0; strcmp("\0", keywd[nindex]) < 0 && !wdc4; nindex++)
            wdc4 = !strcmp(word, keywd[nindex]) ? 1 : 0;
 
        std::cout << "word " << word << " is " 
            << ((wdc1 && wdc2 && wdc3 && !wdc4) ? "correct" : "incorrect") << endl;
    }
 
    _getch();
 
    return 0;
}
Yandex
Объявления
06.03.2014, 20:42     Для каждого слова определить, является ли оно корректным именем
Ответ Создать тему
Опции темы

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