Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 2
Регистрация: 09.11.2013
Сообщений: 7
1

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

09.11.2013, 12:37. Просмотров 1004. Ответов 5
Метки нет (Все метки)

Объясните пожалуйста,в чем ошибка?

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*'"
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.11.2013, 12:37
Ответы с готовыми решениями:

Дан текст, в котором слова разделены одним пробелом. а) Подсчитать количество слов в данной строке. б) Подсчитать количество букв а в последнем слове
Дан текст, в котором слова разделены одним пробелом. а) Подсчитать количество слов в данной строке....

Строки: Выбрать из слов те, которые могут быть получены из образца по правилу
Помогите пожалуйста решить задачу по теме &quot;Строки&quot;: Приняв первое слово за образец, выбрать из...

Найти слова которые могут быть полностью сложены из других слов,сцепление слов(конкатенация)
найти слова которые могут быть полностью сложены из других слов,сцепление слов(конкатенация)

Дано N-строк текста, слова разделены пробелом. Подсчитать количество слов в каждой строке.
дано N-строк текста слова разделены пробелом. подсчитать количество слов в каждой строке. Функция...

5
74 / 35 / 1
Регистрация: 03.08.2012
Сообщений: 447
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.
0
0 / 0 / 2
Регистрация: 09.11.2013
Сообщений: 7
09.11.2013, 14:15  [ТС] 3
Спасибо,но у меня задача просто такая-написать свою функцию подсчета слов
0
74 / 35 / 1
Регистрация: 03.08.2012
Сообщений: 447
09.11.2013, 14:26 4
Тогда посмотрите как реализована функция isspace, в пошаговом дебаге, через F8 зайдите в нее.

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

Добавлено через 51 секунду
Самый лучший программист тот, который уже берет готовое и умеет это применять))
0
0 / 0 / 2
Регистрация: 09.11.2013
Сообщений: 7
10.11.2013, 17:43  [ТС] 5
Я не спорю
0
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,039
10.11.2013, 17:47 6
Цитата Сообщение от kpoxaa Посмотреть сообщение
Самый лучший программист тот, который уже берет готовое и умеет это применять))
Ну и хорошо если он знает как это готовое работает, это хорошая практика, которая показывает как проектируется та или иная функция, эти знания можно взять на вооружение и затем уже свое создавать, например что нить такое чего нету готового, или использовать какой нить принцип.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.11.2013, 17:47

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Вывести в файл output.txt только те строки, в которых больше 5 слов (слова могут быть разделены несколькими пробелами)
В файле input.txt записаны строки, сколько их – неизвестно. Вывести в файл output.txt только те...

В заданной строке слова разделены пробелами. Перед каждым пробелом вставить запятую
В заданной строке слова разделены пробелами. Перед каждым пробелом вставить запятую

Ввести строку, в которой слова разделены одним пробелом. Подсчитать количество слов, состоящих из не более чем четырех
#include&lt;stdio.h&gt; #include&lt;string.h&gt; int main() { char ar; int i,kol=0;...

Подсчитать число слов и букв в заданной строке
2)написать программу, подсчитывающую число слов и букв в заданной строке.


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

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

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