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

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

Войти
Регистрация
Восстановить пароль
 
JerryJackson
50 / 6 / 1
Регистрация: 15.07.2010
Сообщений: 112
#1

Посчитать слова - C++

03.11.2010, 19:27. Просмотров 441. Ответов 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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include "stdafx.h"
#include <iostream>
#include <cctype>
 
using namespace std;
 
int xcount1(char*);
int xcount2(int*);
 
int _tmain(int argc, _TCHAR* argv[])
{
    char str1[]="Привет! nil laba_12 chaos? UFO";
    int str2[]={12,7,5,54,67,3,3,4,1,0};
    
 
    cout << xcount2(str2) << " >>>>" <<endl;
    cout<<"__________________________________________"<<endl;
 
    cout <<  xcount1(str1) << " >>>>" << endl;
 
 
    return 0;
}
int xcount1(char* a)
{
    int i=0;
    int counter=0;
    int n=0;
    while(a[i]!='\0')
    {
if((a[i]==' ')&&(a[i-1]==isalpha(a[i])))
counter++;
else
n=0;
    }
    cout << "Char=" << counter << endl;
    return counter;
}
int xcount2(int* b)
{
 int i=0;
 int counter1=0;
 int n1=0;
 while(b[i]!='\0')
 {
     if(b[i]%2!=0)
         counter1++;
     else
         n1=0;
 }
 cout << "Int=" << counter1 << endl;
 return counter1;
}
Добавлено через 46 секунд
кто-нибудь помогите с программой
не выводит на экран результат
и в программе ошибка
но не могу понять какая
....
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2010, 19:27     Посчитать слова
Посмотрите здесь:

Посчитать слова от А до Я. - C++
Задача: есть строка символов и надо узнать сколько есть слов в этой строке, которые начинаются с буквы &quot;A&quot; и заканчиваются &quot;Я&quot;. ...

Посчитать вхождение каждого слова в строку - C++
Вынужден просить вашей помощи: необходимо написать программу, которая бы считала вхождение каждого слова в строку (сколько раз встречается...

Вывести слова текста в алфавитном порядке и посчитать их количество - C++
1. Дана строка символов, состоящая из произвольного текста на английском языке, слова разделены пробелами. Вывести на экран слова этого...

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

Посчитать количество слов во введенной строке и найти слова, которые начинаются с буквы t - C++
Суть задания такова... 1-посчитать к-во слов во введенной строке. 2-Найти слова, которые начинаются с буквы t. 3-Тут главная проблема -...

Дан текст. Выделить из него слова не содержащие букв из последнего слова - C++
Помогите решить) 1.Дан текст. Выделить из него слова не содержащие букв из последнего слова 2. Дан текст. Для каждого слова длина...

С++ Задан текст напечатать слова отличные от последнего слова Visual Studio - C++
Здравствуйте, вопрос такой, я написал программу через функции Её условие заключается в том, что задан текст напечатать все слова...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
03.11.2010, 19:46     Посчитать слова #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
28
#include <iostream>
#include <string>
#include <algorithm>
#include <sstream>
#include <vector>
 
int main()
{
    const std::string Delims=",.?;!: ";
    std::string Str;
    std::getline(std::cin, Str);
    for(std::string::iterator Iter=Str.begin(); Iter!=Str.end(); ++Iter)
    {
         if(Delims.find(*Iter)!=std::string::npos)
         {
              *Iter=' ';
         }
    }
    std::vector<std::string> VecStr;
    std::string Temp;
    std::istringstream ist(Str);
    while(ist>>Temp)
        VecStr.push_back(Temp);
    std::cout<<"Words\n\n";
    std::copy(VecStr.begin(), VecStr.end(), std::ostream_iterator<std::string>(std::cout, "\n"));
    std::cout<<"Numb of words: "<< VecStr.size() <<'\n';
    return 0;
}
JerryJackson
50 / 6 / 1
Регистрация: 15.07.2010
Сообщений: 112
03.11.2010, 19:50  [ТС]     Посчитать слова #3
спасибо за помощь
но мне string использовать нельзя
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
03.11.2010, 19:59     Посчитать слова #4
JerryJackson, Ну с char* можно и нужно использовать strtok. Код будет немного побольше, но только немного.
Хм. Даже меньше вышел

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <cstring>
#include <iostream>
 
int main()
{
     char str[]={"Hello, world, e c t"};
     const char* delims=".,:?! ";
     int numb=0;
     char* ptr=strtok(str, delims);
     if(ptr)
         numb++;
     while(ptr)
     {
         ptr=strtok(0, delims);
         if(ptr!=0)
           numb++;
     }
     std::cout<<"Numb of words: "<< numb <<'\n';
     return 0;
}
JerryJackson
50 / 6 / 1
Регистрация: 15.07.2010
Сообщений: 112
03.11.2010, 20:01  [ТС]     Посчитать слова #5
да
но говорю же сказали что string использовать вообще нельзя
я бы с радостью сделал со string
но нельзя
....
МаксимМВ
C/C++
90 / 90 / 5
Регистрация: 01.07.2010
Сообщений: 281
03.11.2010, 20:05     Посчитать слова #6
Цитата Сообщение от JerryJackson Посмотреть сообщение
но мне 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 <stdio.h>
 
#define FALSE 0
#define TRUE 1
 
int main(int argc, char *argv[])
{
    int words=0,noword=FALSE;
    char c;
    printf("Введите строку:\n");
    c=getchar();
    while ((c!=EOF)&&(c!='\n'))
    {
        if ((c==' ')||(c=='\t'))
            noword=TRUE;
        if (noword)
            if (!((c==' ')||(c=='\t')))
            {
                words++;
                noword=FALSE;
            }
        c=getchar();
    }
    words++;
    printf("%d слов\n",words);
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2010, 20:43     Посчитать слова
Еще ссылки по теме:

Дано предложение, где два слова различны. Найти эти слова - C++
var mas:arrayof string; i,j,k:integer; w,s:string; begin writeln('Введите строку'); readln(s); k:=0; s:=s+' '; for i:=1 to...

Вывести слова в строке ДО слова, у которого одинаковые первая и последняя буквы - C++
С клавиатуры вводится строка, надо вывести все слова до слова, у которого одинаковые первая и последняя буквы. Проблема в том, что я не...

Как из символов слова «топор» получить слова: «ропот», «топот»? - C++
Как из символов слова «топор» получить слова: «ропот», «топот»?

Напечатать все слова, в которых повторяется первая буква слова - C++
1)Задан текст.Напечатать все слова, в которых повторяется первая буква слова. 2)Задан текст. Напечатать все слова, имеющие четное...

Найти порядковый номер слова максимальной длины и позицию слова - C++
Привет. Нужна помощь. Вот задача : Вывести на экран порядковый номер слова максимальной длины и номер позиции в строке, с которой оно...


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

Или воспользуйтесь поиском по форуму:
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
03.11.2010, 20:43     Посчитать слова #7
JerryJackson, Где в моем втором варианте вы видите string? Там char[]
Yandex
Объявления
03.11.2010, 20:43     Посчитать слова
Ответ Создать тему
Опции темы

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