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

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

Восстановить пароль Регистрация
 
noomer
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 7
09.11.2013, 12:37     Подсчитать в заданной строке число слов, которые могут быть разделены пробелом, табуляцией, переводом строки #1
Объясните пожалуйста,в чем ошибка?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<stdio.h>
#include<string.h>
int *words(char *s)
{
 int len=strlen(s),i,k=1,l=0;
 if(len==0)return 0;
 if(s[0]==' ')l=1;
 for(int j=l;j<len;j++)
 {
  char c=s[i];
  if(c==' ' || c=='\t' || c=='\n')k++;
 }
 return k;
}
void main()
{
 char s[80];
 printf("\введите строку: ");
 scanf("%s",s);
 int *k=words(s);
 printf("\nkol=%d",k);
 getchar();в†ђ здесь ошибка "cannot convert 'int' to 'int*'"
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2013, 12:37     Подсчитать в заданной строке число слов, которые могут быть разделены пробелом, табуляцией, переводом строки
Посмотрите здесь:

В файле-словаре найти и распечатать слова, которые могут быть полностью составлены из других слов словаря C++
C++ Строки: Выбрать из слов те, которые могут быть получены из образца по правилу
Подсчитать количество слов-перевертышей в заданной строке C++
C++ В файле-словаре найти и распечатать слова, которые могут быть полностью составлены из других слов словаря
Подсчитать количество слов в заданной строке C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kpoxaa
70 / 31 / 1
Регистрация: 03.08.2012
Сообщений: 446
09.11.2013, 13:52     Подсчитать в заданной строке число слов, которые могут быть разделены пробелом, табуляцией, переводом строки #2
C++
1
char c=s[i];
тут вылетает...

Добавлено через 2 минуты
Текст ошибки говорит, что i не проинициализирована!

Добавлено через 1 минуту
Вот так вроде бы и логика работает и все запускается...

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
#include "stdafx.h"
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<locale.h>
#include <iostream>
 
using namespace std;
 
int words(char *s)
{
    int len=strlen(s), i, k=1, l=0;
    if(len==0)
        return 0;
    if(s[0]==' ')
        l=1;
    for(int j=l;j<len;j++)
    {
        char c=s[j];
        if(c==' ' || c=='\t' || c=='\n')
            k++;
    }
 
    return k;
}
 
void main()
{
    setlocale(LC_ALL,"RUSSIAN");
 
    char s[80];
    printf("\введите строку: ");
    cin>>s;
 
    int k = words(s);
    printf("\nkol=%d",k);
    getch();
}
Добавлено через 3 минуты
а не... не считает пробелы.

Добавлено через 2 минуты
C++
1
if(isspace(c) == 0) k++;
вот, посмотрите, для вашей задачи есть такая функция. возвращает 0 если символ является пробелом, знаком горизонтальной строки, или вертикальной. Табуляцией, символ возврата строки или каретки. Если не нашло возвращает NULL.
noomer
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 7
09.11.2013, 14:15  [ТС]     Подсчитать в заданной строке число слов, которые могут быть разделены пробелом, табуляцией, переводом строки #3
Спасибо,но у меня задача просто такая-написать свою функцию подсчета слов
kpoxaa
70 / 31 / 1
Регистрация: 03.08.2012
Сообщений: 446
09.11.2013, 14:26     Подсчитать в заданной строке число слов, которые могут быть разделены пробелом, табуляцией, переводом строки #4
Тогда посмотрите как реализована функция isspace, в пошаговом дебаге, через F8 зайдите в нее.

Добавлено через 1 минуту
И вообще это плохая практика изобретать велосипед. Вы и так написали свою функцию используя функции языка си. Вам ведь для того, чтобы текст выводить, не надо писать новый принтф... но вы уж сами смотрите как вам нужно. мое мнение имхо...

Добавлено через 51 секунду
Самый лучший программист тот, который уже берет готовое и умеет это применять))
noomer
0 / 0 / 0
Регистрация: 09.11.2013
Сообщений: 7
10.11.2013, 17:43  [ТС]     Подсчитать в заданной строке число слов, которые могут быть разделены пробелом, табуляцией, переводом строки #5
Я не спорю
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
10.11.2013, 17:47     Подсчитать в заданной строке число слов, которые могут быть разделены пробелом, табуляцией, переводом строки #6
Цитата Сообщение от kpoxaa Посмотреть сообщение
Самый лучший программист тот, который уже берет готовое и умеет это применять))
Ну и хорошо если он знает как это готовое работает, это хорошая практика, которая показывает как проектируется та или иная функция, эти знания можно взять на вооружение и затем уже свое создавать, например что нить такое чего нету готового, или использовать какой нить принцип.
Yandex
Объявления
10.11.2013, 17:47     Подсчитать в заданной строке число слов, которые могут быть разделены пробелом, табуляцией, переводом строки
Ответ Создать тему
Опции темы

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