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

Определить количество слов, начинающихся с буквы "T" - C++

Восстановить пароль Регистрация
 
PiedPiper
0 / 0 / 0
Регистрация: 18.03.2016
Сообщений: 16
21.06.2016, 11:51     Определить количество слов, начинающихся с буквы "T" #1
Ввести текст. Слова разделены пробелами или запятыми, предложения заканчиваются знаками препинания. Длина текста может быть выбрана любой. Определить количество слов, начинающихся с буквы "T". после завершения программы ошибка "Debug Assertion Failed!" как исправить?
int main()
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
{
    setlocale(0, "RUS");
    char str[10];
    cout << "Введите вашу строку: \n";
    cin.getline(str,10); //считывает строку с клавиатуры
    //system("cls"); // очистка экрана clear screen
    cout << "Ваша строка: \n" << str;
        int numberWord = 0;
        bool InWord = false;
 
        for (int i(0); i<=10; i++)
        {
            if (isalpha(str[i]) && !(InWord)) //isalpha  если текущий символ строки буква
            {
                InWord = true;
                numberWord++;   //если в слове, счетчик увеличивается 
                
            }
            if (!isalpha(str[i]))  // если символ НЕ буква 
                InWord = false; //возвращаем значение false 
            cout << "количество слов в тексте: " << numberWord << '\n';
        }
    system("pause");
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5943 / 5548 / 1783
Регистрация: 18.12.2011
Сообщений: 14,167
Завершенные тесты: 1
21.06.2016, 12:20     Определить количество слов, начинающихся с буквы "T" #2
У Вас нет 11-го символа (при i=10, str[i] - это 11-й символ)
И, вообще, незачем смотреть все символы
C++
1
for (int i(0); str[i]!=0; i++)
PiedPiper
0 / 0 / 0
Регистрация: 18.03.2016
Сообщений: 16
21.06.2016, 12:58  [ТС]     Определить количество слов, начинающихся с буквы "T" #3
а как это можно реализовать без просмотра всех символов?
1Вирт1
55 / 53 / 5
Регистрация: 25.08.2011
Сообщений: 427
21.06.2016, 13:16     Определить количество слов, начинающихся с буквы "T" #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <cstring>
{
    setlocale(0, "RUS");
    char str[10];
    cout << "Введите вашу строку: \n";
    cin.getline(str,10); //считывает строку с клавиатуры
    //system("cls"); // очистка экрана clear screen
    cout << "Ваша строка: \n" << str;
    int numberWord = 0;
    char *word = strtok(str, " ,.?!-");
    while (word != nullptr)
        {
        if (strlen(word) >= 1 && word[0] == "Т")
            ++numberWord;
        word = strtok(str, " ,.?!-");
        }
    cout << "количество слов в тексте: " << numberWord << '\n';
    system("pause");
    return 0;
}
PiedPiper
0 / 0 / 0
Регистрация: 18.03.2016
Сообщений: 16
21.06.2016, 13:26  [ТС]     Определить количество слов, начинающихся с буквы "T" #5
вот что в ходе компиляции
error C4996: 'strtok': This function or variable may be unsafe. Consider using strtok_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS.
1Вирт1
55 / 53 / 5
Регистрация: 25.08.2011
Сообщений: 427
21.06.2016, 13:56     Определить количество слов, начинающихся с буквы "T" #6
ну дак Вам же дана подсказка
замените на strtok_s. Можно переписать через string, словом способов очень много
Yandex
Объявления
21.06.2016, 13:56     Определить количество слов, начинающихся с буквы "T"
Ответ Создать тему
Опции темы

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