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

Символьная строка - C++

Восстановить пароль Регистрация
 
Профан
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 49
21.10.2011, 16:13     Символьная строка #1
Подскажите алгоритм
который будет вычислять количество слов больше 4 элементов в символьной строке
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9372 / 5422 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
21.10.2011, 16:53     Символьная строка #2
Не мудрствуя лукаво
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <string>
#include <sstream>
    
int main(){
    const int MINCHARS(4);
    std::string str;
    
    while ( std::cout << "String: " && std::getline(std::cin, str) && ! str.empty() ){
        std::istringstream ist(str);
        int cnt = 0;
        while ( ist >> str )
            if ( str.size() > MINCHARS )
                ++cnt;
        std::cout << cnt << " words longer " << MINCHARS << " characters." << std::endl;
    }
    
    return 0;
}
Профан
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 49
21.10.2011, 17:00  [ТС]     Символьная строка #3
Слегка не понятно написано
Я имел ввиду простую функция в который простой цикл вычислит мое условие с заданного символьного массива
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9372 / 5422 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
21.10.2011, 17:08     Символьная строка #4
Цитата Сообщение от Профан Посмотреть сообщение
Я имел ввиду простую функция в который простой цикл вычислит мое условие с заданного символьного массива
Вот это действительно
Цитата Сообщение от Профан Посмотреть сообщение
Слегка не понятно написано
Хоть пример какой приведите...
Профан
0 / 0 / 0
Регистрация: 06.06.2011
Сообщений: 49
21.10.2011, 17:14  [ТС]     Символьная строка #5
Если честно написано круто.
Хотелось бы увидить как это можно написать с помощью цикла и if без помощи классов.

Подскажи что значит std::istringstream ist(str)
str.empty()
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
21.10.2011, 17:54     Символьная строка #6
На "чистом" си:
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
#include <ctype.h>
#include <stdio.h>
#include <string.h>
 
int count(char *s, int min)
{
   int cnt = 0;
   char *temp = (char*)malloc(strlen(s)+1);
   char* token;
   strcpy(temp, s);
   token =  strtok(temp, " ");
   while (token != 0) 
   {
      if(strlen(token)>=min)
         cnt++;
      token = strtok(0," ");       
   }
   free(temp);
   return cnt;
}
 
int main()
{
   char s[] = "this is my largest program";
   printf("count = %d", count(s, 5));
}
Yandex
Объявления
21.10.2011, 17:54     Символьная строка
Ответ Создать тему
Опции темы

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