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

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

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

Подсчитывание строк - C++

26.10.2016, 13:52. Просмотров 101. Ответов 3
Метки нет (Все метки)

Есть программа, которая должна на выводе дать
1.Количество слов в предложении
2.Самое короткое слово
3.Самое длинное слово
Проблема в том, что в вводе только пробелов, дропает программу. Нужно, что бы программу не дропало, а в консоле выдавало ошибку, о том, что введены одни пробелы и после "Enter" перезапускало программу.
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
54
55
56
57
58
59
#include <iostream>
#include <conio.h>
#include <cstdio>
#include <string.h>
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Russian");
    char x[100];
    char *max = NULL, *min = NULL;
    int size = 0;
    int i = 0,k = 0;
    cout<<"Введите строки: ";
    gets(x);
    if (strlen(x) == 0)
    {
        cout<<"Пустая строка";
    } 
        else 
    {
        for (i = 0; i < strlen(x)-1; i++)
        if (x[i] ==' ')
        {k = k + 1;}
        else
 
        if (0 == (strlen(x) - 1))
        {
            cout<<"Пустая строка";
            getchar();
            return 0;
        }
 
        int a = 0;
        char *y;
        y = strtok(x, " ");
        min = y;
        max = y;
        do
        {
            if (strlen(y) < strlen(min))
            min = y;
            if (strlen(y) > strlen(max))
            max = y;
            a = a + 1;
        } 
        while (y = strtok(NULL, " "));
        if (max == min)
        {
            cout<<"????? ?????"<<endl;
        }
        cout<<"Слов "<<a<<endl;
        cout<<"Самое короткое: "<<min<<endl;
        cout<<"Самое длинное: "<<max<<endl;
    }
 
getchar();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2016, 13:52     Подсчитывание строк
Посмотрите здесь:

C++ Найти количество строк в максимальном множестве попарно непохожих строк заданной матрицы
C++ По некоторому количеству строк (не более N) найти пары строк с общим словом
C++ Ввод нескольких строк или массив строк
Написать программу, использующую стандартную функцию сравнения строк для определения среди трех строк, вводимых пользователем, одинаковых. C++
C++ Определить номера тех строк целочисленной матрицы A[N,K], которые совпадают с массивом D[K], если таких строк нет - выдать соответствующее сообщение
Используя функцию копирования строк, организуйте конкатенацію и копирование строк в четвертый массив, содержащий полные имена C++
Запросить название учебного заведения, специальность и номер группы. записав их в массив из 3 строк. Подсчитать длины каждой строк C++
C++ Добавление неодинаковых строк в массив строк
C++ Вводится массив строк текста с неизвестным заранее количеством строк
Программа для поиска соответствие строк, учитывая регистр, в текстовом файле с 10000+ строк C++
Внесение строк в массив строк (не сложно) C++
C++ Упорядочить по росту сумм элементов строк строки той матрицы, у которой больше нулевых строк

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4522 / 3860 / 1297
Регистрация: 14.04.2014
Сообщений: 15,133
26.10.2016, 14:17     Подсчитывание строк #2
C++
1
if (k == strlen(x))
TurukT0
0 / 0 / 0
Регистрация: 05.12.2016
Сообщений: 1
05.12.2016, 22:47     Подсчитывание строк #3
При добавлении строки if (k == strlen(x)) программа перестаёт работать, помогите плиз)
nmcf
4522 / 3860 / 1297
Регистрация: 14.04.2014
Сообщений: 15,133
06.12.2016, 10:14     Подсчитывание строк #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    if (strlen(x) == 1)
    {
        cout<<"Пустая строка";
        getchar();
        return 0;
    }
 
    for (i = 0; i < strlen(x) - 1; i++)
        if (x[i] != ' ') break;
    if (i == strlen(x) - 1)
    {
        cout<<"Строка из пробелов";
        getchar();
        return 0;
    }
Yandex
Объявления
06.12.2016, 10:14     Подсчитывание строк
Ответ Создать тему
Опции темы

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