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

Програма из char масивом - C++

Восстановить пароль Регистрация
 
Batarchuk
0 / 0 / 0
Регистрация: 27.03.2011
Сообщений: 28
28.03.2011, 00:02     Програма из char масивом #1
Нужна программа с++, которая считает количество слов в строке (которая вводится через консоль) и выводит это число на экран.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Batarchuk
0 / 0 / 0
Регистрация: 27.03.2011
Сообщений: 28
28.03.2011, 00:27  [ТС]     Програма из char масивом #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
24
25
26
27
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
 
using namespace std;
 
int main()
{
 
char str[]="dfhdfhdf hdfh dh  "; // Пишу так, а нужно как-то через консоль что б вводилось
int i,words;
for(i=1; i<strlen(str); i++) //
words=0;
char a=' ';
if(str[i] = a)
words++;
 
else
i++;
 
}
cout <<"Quantity of words is:"<<words<<endl;
 
 
system ("PAUSE");
}


Выдаёт то "0" то "1" , а надо количество слов.
p.s. Не судите сурово, я только учусь....
IrineK
Заблокирован
28.03.2011, 00:52     Програма из char масивом #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int main()
{
 
char str[]="dfhdfhdf hdfh dh "; // Пишу так, а нужно как-то через консоль что б вводилось
int i,words=1;
for(i=0; i<strlen(str); i++) //
    if(str[i] == ' ')
        words++;
cout <<"Quantity of words is:"<<words<<endl;
 
 
system ("PAUSE");
}
Работает, если строка не начинается с пробела и слова разделены одним пробелом, а если двумя?
Batarchuk
0 / 0 / 0
Регистрация: 27.03.2011
Сообщений: 28
28.03.2011, 15:04  [ТС]     Програма из char масивом #4
Спасибо за поправку! Теперь ещё как-то сделать нужно, что б массив из консоля заполнялся, и исключения обрабатывались. Я думал, может как-то ввести переменную, например char TEXT; и её передать в массив поэлементно, но как...
IrineK
Заблокирован
28.03.2011, 15:21     Програма из char масивом #5
и исключения обрабатывались
А что у нас исключения?
Batarchuk
0 / 0 / 0
Регистрация: 27.03.2011
Сообщений: 28
28.03.2011, 15:28  [ТС]     Програма из char масивом #6
Исключения наверно такие могут быть: два и больше пробелов подряд, начало из пробелов, что б не учитывало табуляцию ид. виды пробелов и не учитывало за слова символы и пунктуацию.

Много, конечно, но может как-то через isspace() и ispunct() ?
IrineK
Заблокирован
28.03.2011, 15:37     Програма из char масивом #7
Лучше через strtok
http://www.cplusplus.com/reference/c...string/strtok/

Если использовать string - еще лучше.
Batarchuk
0 / 0 / 0
Регистрация: 27.03.2011
Сообщений: 28
28.03.2011, 15:43  [ТС]     Програма из char масивом #8
Вот приблизительно, что получилось, только где-то ошибка. А идея из strtok интересная, сейчас попробую.


int main()
{

char str[]="dfhdfhdf hdfh dh ";
int i,words=1;
for(i=0; i<strlen(str); i++)
if(( isspace(i)==1)& (ispunct(i)==0))
words++;
cout <<"Quantity of words is:"<<words<<endl;


system ("PAUSE");
}
IrineK
Заблокирован
28.03.2011, 15:56     Програма из char масивом #9
С иcпользованием string:

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 <sstream>
using namespace std;
 
int main()
{
    char sentence[256];
    string word;
    int i;
 
    cout<<"Input a string:\n";
    cin.getline(sentence,256);
    string row(sentence);
 
    for(i=0;i<row.length();i++)
        if(row[i]=='.' || row[i]==',' || row[i]=='?' || row[i]=='!')//"исключения" - здесь
            row[i]=' ';
    i=0;
    istringstream ist(row);
    while(ist>>word)
        i++;
 
    cout<<i<<" words found\n";
            
    cin.get();
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.03.2011, 15:59     Програма из char масивом
Еще ссылки по теме:

C++ Ошибка в cannot convert char * to char вроде поправил теперь выводит ересь(
C++ Программа с двувымерным масивом
C++ Различное поведение функции которая копирует строки с char* t и char t[]

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

Или воспользуйтесь поиском по форуму:
Batarchuk
0 / 0 / 0
Регистрация: 27.03.2011
Сообщений: 28
28.03.2011, 15:59  [ТС]     Програма из char масивом #10
Спасибо, это то, что нужно... я сейчас добавлю ещё пару исключений и будет всё "в шоколаде"! Благодарю.
Yandex
Объявления
28.03.2011, 15:59     Програма из char масивом
Ответ Создать тему
Опции темы

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