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

В заданной строке определить количество слов (в строке может содержаться несколько пробелов подряд). - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 64, средняя оценка - 4.73
sovershenstvo
0 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 125
16.04.2012, 12:49     В заданной строке определить количество слов (в строке может содержаться несколько пробелов подряд). #1
В заданной строке определить количество слов (в строке может содержаться несколько пробелов подряд).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.04.2012, 12:49     В заданной строке определить количество слов (в строке может содержаться несколько пробелов подряд).
Посмотрите здесь:

В заданной строке определить количество слов C++
C++ В строке посчитать наибольшее количество идущих подряд пробелов
Подсчитать количество слов-перевертышей в заданной строке C++
C++ Работа со строками. Определить количество пробелов в строке и вывести на экран
C++ Массив символов (Подсчитать количество слов в строке, при условии, что в качестве разделителя слов используется один или несколько пробелов)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alexcoder
1438 / 652 / 86
Регистрация: 03.06.2009
Сообщений: 3,284
Завершенные тесты: 1
17.04.2012, 09:10     В заданной строке определить количество слов (в строке может содержаться несколько пробелов подряд). #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//определяет количество слов в строке
int getwordcount(TCHAR *s)
{
int i,words=0,dl;
dl=strlen(s);
i=0;//начальный индекс в строке
while(1)
    {
    //ищем непробел(начало слова)
    for(;i<dl&&isspace((unsigned char)s[i]);i++);
    //когда нашли
    if(i==dl) //если строка закончлась, вернуть количество найденных слов
        {
        return words;
        }
    words++;//увеличивам счетчик слов
    for(;i<dl&&!isspace((unsigned char)s[i]);i++);//ищем конец слова
    if(i==dl)
        {
        return words;//если строка закончлась, вернуть количество найденных слов
        }
    }
}
zitxbit
Master C/C++
 Аватар для zitxbit
86 / 738 / 75
Регистрация: 11.04.2012
Сообщений: 971
17.04.2012, 09:46     В заданной строке определить количество слов (в строке может содержаться несколько пробелов подряд). #3
Код выше не работает. Вот правильный код:
C++
1
2
3
4
5
    int count = 0; 
    if (strcmp("",psz) < 0) count++;
    for (int i = 0; (psz[i] != '\0') && (i < strlen(psz)-1); i++)
        if (isspace(psz[i]) && isalnum(psz[i+1]))
            count++;
alexcoder
1438 / 652 / 86
Регистрация: 03.06.2009
Сообщений: 3,284
Завершенные тесты: 1
17.04.2012, 09:52     В заданной строке определить количество слов (в строке может содержаться несколько пробелов подряд). #4
Все работает, проверено неоднократно.
Jazz1k
0 / 0 / 0
Регистрация: 17.03.2012
Сообщений: 13
20.05.2012, 15:18     В заданной строке определить количество слов (в строке может содержаться несколько пробелов подряд). #5
И все же ни один из этих 2 кодов программы не работает =(
gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
20.05.2012, 15:34     В заданной строке определить количество слов (в строке может содержаться несколько пробелов подряд). #6
Цитата Сообщение от Jazz1k Посмотреть сообщение
И все же ни один из этих 2 кодов программы не работает =(
А так?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <sstream>
#include <string>
 
 
int main() {
   std::string str = "Somethin' strange going on here...";
   
   std::istringstream iss(str);
   std::string tmp;
   std::size_t count = 0;
   
   while (iss >> tmp) {
      ++count;
   }
   
   std::cout << count << std::endl;
}
http://liveworkspace.org/code/c52b69...233b5bd8a95970
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2012, 23:30     В заданной строке определить количество слов (в строке может содержаться несколько пробелов подряд).
Еще ссылки по теме:

Количество слов в заданной строке (для каждого из слов) C++
Подсчитать количество слов в заданной строке C++
Определить в строке количество пробелов до первого восклицательного знака C++

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

Или воспользуйтесь поиском по форуму:
romka_suhanov
1 / 1 / 0
Регистрация: 08.05.2012
Сообщений: 10
20.05.2012, 23:30     В заданной строке определить количество слов (в строке может содержаться несколько пробелов подряд). #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <conio.h>
#include <string>
 
using namespace std;
 
int main ()
{
    string str;
    str = "ololol ololo ooolllool";
    int counter = 0;
    for (int i=0;i<str.size();i++)
    if (str[i]==' ') counter++;
    cout << "V zadannou stroke " << counter+1 << " clov(a)" << endl;
    getch();
    return 0;
}
Yandex
Объявления
20.05.2012, 23:30     В заданной строке определить количество слов (в строке может содержаться несколько пробелов подряд).
Ответ Создать тему
Опции темы

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