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

Найти количество групп с пятью символами. - C++

Восстановить пароль Регистрация
 
saserlend
10 / 10 / 1
Регистрация: 25.11.2011
Сообщений: 138
07.01.2012, 16:52     Найти количество групп с пятью символами. #1
Дана строка, состоящая из групп нулей и единиц. Каждая группа отделя-ется от другой одним или несколькими пробелами. Найти количество групп с пятью символами.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.01.2012, 16:52     Найти количество групп с пятью символами.
Посмотрите здесь:

Найти количество групп с пятью символами C++
факториал пятью способами C++
C++ Есть строка, состоящая из групп нулей и единиц. Каждая группа отделяется друг от друга одним или несколькими пробелами. Найти и вывести на экран групп
C++ Работа с символами. Подсчитать количество слов в строках
В строке, состоящей из групп нулей и единиц, подсчитать количество символов в самой длинной группе. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
07.01.2012, 17:16     Найти количество групп с пятью символами. #2
saserlend, на чём писать С/С++?
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
07.01.2012, 17:16     Найти количество групп с пятью символами. #3
Цитата Сообщение от saserlend Посмотреть сообщение
Найти количество групп с пятью символами.
Если всё равно, нули там, единицы, или ещё что, то вот:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <string.h>
 
int tokens_count(char * s, const char * delim, int toklen){
    char * p = strtok(s, delim);
    return ( p ) ? ( strlen(p) == toklen ) + tokens_count(NULL, delim, toklen) : 0;
}
 
#define DELIM " \t\n"
#define TOK_LEN 5
 
int main(void){
    char buf[BUFSIZ];
    
    while ( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf != '\n' )
        printf("%d tokens length of %d symbols.\n", tokens_count(buf, DELIM, TOK_LEN), TOK_LEN);
        
    return 0;
}
saserlend
10 / 10 / 1
Регистрация: 25.11.2011
Сообщений: 138
07.01.2012, 17:18  [ТС]     Найти количество групп с пятью символами. #4
С++ ------
easybudda thx
-=ЮрА=-
Заблокирован
Автор FAQ
07.01.2012, 17:25     Найти количество групп с пятью символами. #5
Т.к. Си уже рассмотрен easybudda, то вот вариант на плюсах
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
#include <iostream>
#include <sstream>
using namespace std;
 
int main()
{
    long nFiveChars = 0;
    char text[1024];
    cout<<"Enter string (less than 1024): ";
    cin.getline(text,1024);
    string token;
    stringstream ss;
    ss.str(text);
    cout<<"See tokens length of 5 chars\n";
    while(ss>>token)
    {
        if(token.length() == 5)
        {
            nFiveChars++;
            cout<<token<<endl;
        }
    }
    if(nFiveChars == 0)
        cout<<"Input text not contain ";
    else
        cout<<"Input text contains from "<<nFiveChars;
    cout<<"tokens with length of 5 chars\n";
    system("pause");
    return 0;
}
Миниатюры
Найти количество групп с пятью символами.  
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
07.01.2012, 17:44     Найти количество групп с пятью символами. #6
Цитата Сообщение от saserlend Посмотреть сообщение
С++
Выпендрёжный вариант:
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
#include <iostream>
#include <string>
#include <sstream>
#include <algorithm>
#include <iterator>
 
class LenTest {
    int len;
public:
    LenTest(int _len) : len(_len) {}
    bool operator () (const std::string & s) {
        return s.length() == len;
    }
};
 
int main(){
    const int NEEDED_LEN(5);
    std::string s;
    
    while ( std::cout << "String: " && std::getline(std::cin, s) && ! s.empty() ){
        std::istringstream ist(s);
        std::cout << std::count_if(std::istream_iterator<std::string>(ist), std::istream_iterator<std::string>(), LenTest(NEEDED_LEN))
            << " tokens length of " << NEEDED_LEN << " symbols." << std::endl;
    }
    
    return 0;
}
Yandex
Объявления
07.01.2012, 17:44     Найти количество групп с пятью символами.
Ответ Создать тему
Опции темы

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