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

Найти все слова, в которые заданный символ входит не менее двух раз - C++

Восстановить пароль Регистрация
 
LoneR 23
 Аватар для LoneR 23
0 / 0 / 0
Регистрация: 06.11.2011
Сообщений: 43
12.02.2012, 08:33     Найти все слова, в которые заданный символ входит не менее двух раз #1
Написать 2 программы

1)Найти все слова, в которые заданный символ входит не менее двух раз
2)Найти все слова, в которые заданный символ входит не менее двух раз

Для каждой программы написать 2 варианта:
1 вариант - работа со строками поэлементно char
2 вариант максимально использовать стандартные подпрограммы.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.02.2012, 08:33     Найти все слова, в которые заданный символ входит не менее двух раз
Посмотрите здесь:

C++ Написать функцию, которая выводит на экран все слова за данной строки, в которые заданная буква входит N или более раз.
Найти элементы, которые встречаються в массиве не менее двух раз и лежащие в заданном диапазоне C++
C++ Написать программу,которая подсчитывает сколько раз заданный символ входит в данную строку текста
Каждая буква входит в слово не менее двух раз (на си) C++
C++ Строковые переменные: Найти все слова, в которых буква ''а'' входит не менее двух раз
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
remarkes
300 / 223 / 13
Регистрация: 01.07.2011
Сообщений: 809
Записей в блоге: 1
12.02.2012, 13:04     Найти все слова, в которые заданный символ входит не менее двух раз #2
ага. значит, для себя отметим: в Барнауле обучают программистов-лодырей
вам на Си написать?
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
12.02.2012, 13:31     Найти все слова, в которые заданный символ входит не менее двух раз #3
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 <stdio.h>
#include <string.h>
                                                  
#define DELIM ",.?!:;() \t\n"
 
int main(void)
{
    char str[] = "hello world \t-Wall walle \npff lalalal\n";
    char symbol = 'l';
    unsigned min = 2;
    char* p, *tmp;
    unsigned count;
    for(p = strtok(str, DELIM); p != NULL; p = strtok(NULL, DELIM))
    {
        tmp = p;
        count = 0;
        while(*tmp != '\0')
        {
            if(*tmp == symbol)
                ++count;
            if(count == min)
                break;
            ++tmp;
        }
        if(count == min)
            printf("%s\n", p);
    }
    return 0;
}
http://liveworkspace.org/code/6e9a78...5e62fd42cf3840
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
12.02.2012, 13:43     Найти все слова, в которые заданный символ входит не менее двух раз #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
В старом стиле через STL
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <algorithm>
#include <string>
 
int main()
{
    std::string Str;
    std::getline(std::cin, Str);
    char ch;
    std::cin>>ch;
    std::size_t end, beg = Str.find_first_not_of(" ,._");
    while(beg != std::string::npos)
    {
        end = Str.find_first_of(" ,._", beg);
        std::string temp = Str.substr(beg, end - beg);
        if(std::count(temp.begin(), temp.end(), ch) > 2)
            std::cout<<temp<<" ";
        beg = Str.find_first_not_of(" ,._", end);        
    }
    std::cout<<std::endl;
    system("pause");
    return 0;
}
remarkes
300 / 223 / 13
Регистрация: 01.07.2011
Сообщений: 809
Записей в блоге: 1
12.02.2012, 14:30     Найти все слова, в которые заданный символ входит не менее двух раз #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
71
72
73
74
75
76
77
//~ дан текст. найти слова, в которых
//~ заданный символ входит не менее двух раз
 
#include <stdio.h>
#include <string.h>
#include <ctype.h>
 
//~ размер вводной строки
#define MAX_INPUT 1024
//~ размер слова
#define MAX_WORD 256
 
 
int is_two_symbols_in_word(char, char []);
 
int main()
{
    int i=0;
    char sentence[MAX_INPUT];
    char symbol; 
    int  i_word=0;
    char check_word[MAX_WORD];
    
    strcpy(sentence, "spell tell Проверка работы кода: заданный желаННый");
    strcat(sentence, " ");
 
    symbol='н';
    //~ scanf("%c", &symbol);
    
    while (sentence[i] != '\0') {
        if ( sentence[i] != ' ' ) {
            check_word[i_word]=sentence[i];
            i++;
            i_word++;
        } else {
            check_word[i_word]='\0';
            i++;
            i_word=0;
            if ( is_two_symbols_in_word(symbol, check_word) >= 2 )
                printf("%s\n", check_word);
        }
    }
 
    return 0;
}
 
 
//~ ищет два одинаковых символа в слове
int is_two_symbols_in_word(char symbol, char check_word[]) {
    int i_word=0;
    int yes=0;
    char symbol1=symbol;
    //~ это symbol1 в другом регистре
    char symbol2=symbol;
 
    //~ не работает с русскими буквами. только ASCII - т.е. английский
    //~ if (islower(symbol1)) {
        //~ symbol2=toupper(symbol);
    //~ } else {
        //~ symbol2=tolower(symbol);
    //~ }
 
 
    while (check_word[i_word] != '\0') {
        if (check_word[i_word] == symbol1 || check_word[i_word] == symbol2) {
            yes++;
 
            //~ если два символа уже найдено
            //~ чтобы не читать слово целиком
            if (yes >= 2) {
                break;
            }
        }
        i_word++;
    }
    return yes;
}
Yandex
Объявления
12.02.2012, 14:30     Найти все слова, в которые заданный символ входит не менее двух раз
Ответ Создать тему
Опции темы

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