С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Batarchuk
0 / 0 / 0
Регистрация: 27.03.2011
Сообщений: 28
#1

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

28.03.2011, 00:02. Просмотров 360. Ответов 9
Метки нет (Все метки)

Нужна программа с++, которая считает количество слов в строке (которая вводится через консоль) и выводит это число на экран.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2011, 00:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Програма из char масивом (C++):

Работа с масивом - C++
Как предоставить пользователю ввод кол-ва элементов масива вручную. cout<<"input number of mas element and press Enter..."; ...

Программа с двувымерным масивом - C++
Здравствуйте ув. форумчане. Помогите написать программу: Задаеться квадратная матрица. Изьять из неё ряд и стовпец на перекрестии...

Инициализация вектора масивом - C++
Нужно иницилизировать вектр элементами массива всеми возможными способами, которые вы знаете Я написала все которые нашла. Можете...

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

(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const& - C++
astxx::manager::connection::connection(std::basic_string&lt;char, std::char_traits&lt;char&gt;, std::allocator&lt;char&gt; &gt; const&amp;, unsigned short); ...

Error C2664: sprintf: невозможно преобразовать параметр 1 из 'const char *' в 'char *' - C++
error C2664: sprintf: невозможно преобразовать параметр 1 из 'const char *' в 'char *' void crpost(const statep &amp;struc1) { ...

9
Batarchuk
0 / 0 / 0
Регистрация: 27.03.2011
Сообщений: 28
28.03.2011, 00:27  [ТС] #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. Не судите сурово, я только учусь....
0
IrineK
Заблокирован
28.03.2011, 00:52 #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");
}
Работает, если строка не начинается с пробела и слова разделены одним пробелом, а если двумя?
0
Batarchuk
0 / 0 / 0
Регистрация: 27.03.2011
Сообщений: 28
28.03.2011, 15:04  [ТС] #4
Спасибо за поправку! Теперь ещё как-то сделать нужно, что б массив из консоля заполнялся, и исключения обрабатывались. Я думал, может как-то ввести переменную, например char TEXT; и её передать в массив поэлементно, но как...
0
IrineK
Заблокирован
28.03.2011, 15:21 #5
и исключения обрабатывались
А что у нас исключения?
0
Batarchuk
0 / 0 / 0
Регистрация: 27.03.2011
Сообщений: 28
28.03.2011, 15:28  [ТС] #6
Исключения наверно такие могут быть: два и больше пробелов подряд, начало из пробелов, что б не учитывало табуляцию ид. виды пробелов и не учитывало за слова символы и пунктуацию.

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

Если использовать string - еще лучше.
0
Batarchuk
0 / 0 / 0
Регистрация: 27.03.2011
Сообщений: 28
28.03.2011, 15:43  [ТС] #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");
}
0
IrineK
Заблокирован
28.03.2011, 15:56 #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;
}
1
Batarchuk
0 / 0 / 0
Регистрация: 27.03.2011
Сообщений: 28
28.03.2011, 15:59  [ТС] #10
Спасибо, это то, что нужно... я сейчас добавлю ещё пару исключений и будет всё "в шоколаде"! Благодарю.
0
28.03.2011, 15:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.03.2011, 15:59
Привет! Вот еще темы с ответами:

Ошибка в cannot convert char * to char вроде поправил теперь выводит ересь( - C++
Всем доброго дня! У меня такая проблемка.... написал программу, но сначала она ругалась на Cannot convert char* to char теперь вроде...

Ошибка: call of overloaded 'strchr(char&, char)' is ambiguous - C++
Здравствуйте, прога почему-то ругается на функцию strchr, вот кусок кода: #include &lt;stdio.h&gt; #include &lt;iostream&gt; #include...

Сделать преобразование unsigned char в char, а затем типу int - C++
Здраствуйте, есть вопрос: Число представлено двумя полями: типа long для рублей и unsigned char - для копеек. Собственно что мне...

Различное поведение функции которая копирует строки с char* t и char t[] - C++
столкнулся с ситуацией которую не могу объяснить пишем функцию которая копирует одну строку в другую: void strstr(char* t,...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.