1 / 1 / 3
Регистрация: 18.11.2012
Сообщений: 54
1

Обработка символьных данных. Yes, если есть символ в строке и NO если его нет

22.04.2013, 17:00. Показов 1191. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Помогите решить задачу: Если в данный текст входит любая из букв слова key, напечатать да, если не входит то нет.
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
#include "stdafx.h"
#include <conio.h>
#include <locale>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
int main()
{
    int k=0;
    char s[]={'K','E','Y'};
    char vvod[100];
    while(*vvod!='.')
    {
    cin>>vvod;
    _strupr(vvod);
       if(strpbrk(vvod,s))
       {
        cout<<"Yes :)"<<endl;
        break;
       }
       else 
           if(!strpbrk(vvod,s))
           {cout<<"NO"<<endl;break;
       }
    } 
_getch();
    return 0;
}
Если без else то все гуд, работает как часы - если в строке есть слово включающее в себя любой символ из key, то все выводится. если с веткой елсе то нифига не работает правильно =( ЗАпараился.. 4 неделю сижу на лабе не моуг понять как сделать. Хелп ми!
C++
1
if((strpbrk(,'K'vvod))&&(strpbrk('E',vvod))&&(stprbrk('E',vvod)) cout<<"содержит"; else cout<<"отсутствует";
Пробовал всякие условия - он считывает каждое слово как отедльный массив и выводит по слову-
мама мыла рамku - no no yes

Добавлено через 1 час 5 минут
Ну и что же.. форум пестрит подобными сообщениями, ответа так и нет... то ли "гуру" пролистывая вопрос смееются и не хотят отвечать, то ли у всех полнейшее безразличие...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.04.2013, 17:00
Ответы с готовыми решениями:

Если в массиве есть хоть 1 отрицательное число, то программа должна печатать max, а если нет - то 0
Дано массив... если в массиве есть хоть 1 отрицательное число то программа должна печатать max, а...

Определить является ли заданное число трёхзначным, если нет, вывести его последнюю цифру, а если да, первую
Помогите пожалуйста, срочно. Нужно определить является ли число трёхзначным, если нет, вывести его...

Ввести с клавиатуры фамилию и задать букву на поиск (любую) тогда вывести ее на экран если он есть, а если нет то сообщение что она отсутствует.
Ввести с клавиатуры фамилию и задать букву на поиск (любую) тогда вывести ее на экран если он есть,...

Тригер, проверяющ. есть ли такой ID и если есть обновляющий его, если нет - добавляющий
Сабж. В MSSQL нуб. Есть ситуация. Добавляю товар из каталога поставщика в каталог магазина....

1
82 / 82 / 50
Регистрация: 22.09.2012
Сообщений: 495
22.04.2013, 18:22 2
hop_hey, я бы лучше сделал так
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
#include <iostream>
#include <cstring>
using namespace std;
const int size = 100;
bool check(char symbol);
 
int main()
{
    char vvod[size];
    int i = 0;//начало строки
    cout <<"Entered text: ";
    cin >>vvod;
    while (vvod[i]!='.')
    {
        int size = strlen(vvod);
        for (int j=0;j<size;j++)
            if (check(vvod[j]))
            {
                cout <<"YES!!!\n";
                break;
            }
            else if (j==size-1)
                cout <<"NO!!!\n";
        cout <<"Entered text: ";
        cin >>vvod;
    }
    return 0;
}
 
bool check(char symbol)
{
    switch (symbol)
    {
        case 'K':
        case 'E':
        case 'Y': return true;
        default : return false;
    }
}
Добавлено через 5 минут
блин, ток я чёто с основным циклом накасячил, при while.....ну в общем надеюсь идею ты понял)

Добавлено через 21 минуту
Вот, это точно будет работать, но немного гразновато получилось. Ну зато работает)
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
#include <iostream>
#include <cstring>
using namespace std;
const int size = 100;
bool check(char symbol);
 
int main()
{
    char vvod[size];
    int i = 0;
    bool flag = false;
    cout <<"Entered text: ";
    cin.getline(vvod,size);
    int sizeText = strlen(vvod);
    while (vvod[i])
    {
        if (flag == false)
        {
            if (check(vvod[i]))
            {
                cout <<"Yes\n" <<endl;
                flag = true;
            }
            else if (i == sizeText-1)
                cout <<"NO\n";
        }
        if (i != sizeText-1)
            i++;
        else
        {
            if (vvod[i] != '.')
            {
                cout <<"Entered text: ";
                cin.getline(vvod,size);
                int sizeText = strlen(vvod);
                flag = false;
                i=0;
            }
            else break;
        }
    } 
    return 0;
}
 
bool check(char symbol)
{
    switch (symbol)
    {
        case 'K':
        case 'E':
        case 'Y': return true;
        default : return false;
    }
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.04.2013, 18:22
Помогаю со студенческими работами здесь

Поместить в массив 2, если в соответствующей строке исходной матрицы есть четный элемент, и 1, если нет
Дана целочисленная (n*m) матрица. Построить одномерный символьный массив из n элементов, каждый...

Для каждого слова в отдельной строке вывести YES если его можно сложить из печенья, и NO если нет
Вот условия задачи И снова знаменитые буквы из печенья поступили в продажу! Их можно не только...

Почему макрос работает, если создавать и запускать его в Командной строке, а если в пакетном файле, то нет?
Подскажите почему если вводить последовательно в командной строке DOSKEY npp=&quot;C:\Program...

Есть ли во введенной строке символов символ точка. Если есть, выводится символ «Ok» или «Not»
Построить и отладить программу на Ассемблере, которая: Определяет, есть ли во введенной строке...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru