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

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

Восстановить пароль Регистрация
 
hop_hey
1 / 1 / 1
Регистрация: 18.11.2012
Сообщений: 54
22.04.2013, 17:00     Обработка символьных данных. Yes, если есть символ в строке и NO если его нет #1
Здравствуйте! Помогите решить задачу: Если в данный текст входит любая из букв слова 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 минут
Ну и что же.. форум пестрит подобными сообщениями, ответа так и нет... то ли "гуру" пролистывая вопрос смееются и не хотят отвечать, то ли у всех полнейшее безразличие...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2013, 17:00     Обработка символьных данных. Yes, если есть символ в строке и NO если его нет
Посмотрите здесь:

C++ нужно чтобы в строке если встречается символ то прибавить соответствующую цифру к числу
C++ Ввести с клавиатуры фамилию и задать букву на поиск (любую) тогда вывести ее на экран если он есть, а если нет то сообщение что она отсутствует.
C++ Найти слово "ТЕКСТ", если такое слово есть,то отпечатать его номер в строке.
C++ Обработка символьных данных(удалить в строке все символы, кроме цифр)
C++ Дана строка, в котором есть слово "да" или слово "нет". Если в нем есть слово "нет", то удалить его
Если в массиве есть хоть 1 отрицательное число, то программа должна печатать max, а если нет - то 0 C++
C++ Если на k-й символ попадает слово, то оно относится ко второй строке
C++ Стринг. Запрет дальнейшего выполнения процеса, если в строке встречается символ

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dalay_lama
 Аватар для dalay_lama
65 / 65 / 7
Регистрация: 22.09.2012
Сообщений: 434
22.04.2013, 18:22     Обработка символьных данных. Yes, если есть символ в строке и NO если его нет #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;
    }
}
Yandex
Объявления
22.04.2013, 18:22     Обработка символьных данных. Yes, если есть символ в строке и NO если его нет
Ответ Создать тему
Опции темы

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