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

Как найти слова в строке между пробелами - C++

Восстановить пароль Регистрация
 
дарт вейдер
 Аватар для дарт вейдер
5 / 0 / 0
Регистрация: 05.06.2013
Сообщений: 92
10.09.2013, 22:07     Как найти слова в строке между пробелами #1
вот прога которая просто считает пробелы, но мне надо слова между пробелами
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <stdio.h>
#include <string>
#include <conio.h>
#include<clocale>
using namespace std;
void main(void)
{
char s[255];
setlocale(LC_ALL,"Russian");
cout<<"Введите строку: ";
gets(s);
unsigned int a,i;
a=0;
for (i=0;i<strlen(s)-1;i++)
 if ((s[i]==' ') && (s[i+1]!=' '))
  a=a+1;
if (s[0]!=' ')
    a=a+1;
cout<<"В строке: "<<a<<" слов";
getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.09.2013, 22:07     Как найти слова в строке между пробелами
Посмотрите здесь:

C++ дополнить пробелами каждое слово так, чтобы его длинна приравнялась длинне самого длинного слова в строке
Поменять местами первые слова (слова разделены пробелами) заданных строк, без использования процедур C++
Дана строка до точки, группа символов в которой между пробелами считается словом, знаки препинания от слова пробелом не отделяются C++
Дана строка, слова в которой разделены пробелами. Оставьте в ней только те слова, которые начинаются на ту же букву, что и первое слово. C++
Дана строка до точки, группа символов в которой между пробелами считается словом, знаки препинания от слова пробелом не отделяются C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Belfegor
Ghost
 Аватар для Belfegor
172 / 172 / 6
Регистрация: 16.09.2012
Сообщений: 524
10.09.2013, 22:12     Как найти слова в строке между пробелами #2
слов будет на 1 больше нежели пробелов

Добавлено через 1 минуту

Не по теме:

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
 
int main() {
    string s;
    getline(cin, s);
    cout << (count(begin(s), end(s), ' ')) + 1 << endl;
 
    return 0;
}

gray_fox
What a waste!
 Аватар для gray_fox
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 3
10.09.2013, 22:13     Как найти слова в строке между пробелами #3
Как то так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <sstream>
#include <string>
 
 
int main() {
   std::string str;
   std::getline(std::cin, str);
 
   std::istringstream iss(str);
   for (std::string word; iss >> word; ) {
      // ...
   }
}
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11845 / 6824 / 771
Регистрация: 27.09.2012
Сообщений: 16,919
Записей в блоге: 2
Завершенные тесты: 1
10.09.2013, 22:14     Как найти слова в строке между пробелами #4
Цитата Сообщение от Belfegor Посмотреть сообщение
слов будет на 1 больше нежели пробелов
А если между словами 5 пробелов?
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
10.09.2013, 22:37     Как найти слова в строке между пробелами #5
Цитата Сообщение от дарт вейдер Посмотреть сообщение
вот прога которая просто считает пробелы, но мне надо слова между пробелами
Эта программа как раз и считает слова между пробелами, другое дело, что написана она некачественно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
int main()
{
    char s[256] = "";
    int count = 0;
 
    std::cin.getline(s, sizeof(s));
    if(s[0] != '\0')
    {
        for(int i = 1; s[i] != '\0'; ++i)
          if((s[i - 1] == ' ') && (s[i] != ' '))
            ++count;
 
        if(s[0] != ' ')
          ++count;
    }
 
    std::cout << "Count: " << count << '\n';
}
Yandex
Объявления
10.09.2013, 22:37     Как найти слова в строке между пробелами
Ответ Создать тему
Опции темы

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