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

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

Войти
Регистрация
Восстановить пароль
 
кверти
4 / 4 / 1
Регистрация: 22.09.2013
Сообщений: 139
Завершенные тесты: 2
#1

Не правильно формирует строку - C++

18.02.2014, 10:30. Просмотров 246. Ответов 4
Метки нет (Все метки)

Требуется написать программу , которая при вводе строки определяет сколько в ней слов оканчивающихся на букву а . Программа должна работать при вводе правильного пароля.
У меня такая проблема , когда ввожу строку на русском языке, то она за место того что я ввел преобразуется в нечто иное из рандомных символов . Русский язык включен через setlocale(0,""); При вводе строки использую метод gets . Также сомневаюсь в правильности условия цикла .
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
#include "Head_file.h"
 
int main() 
{
    setlocale(0,"");
    
    char true_password[] = "4232"; //Требуемый пароль.
    char scan_password[5]; //Вводимый пароль.
 
    char string[80]; //Вводимая строка.
    int Len = 0; //Для хранения длины строки.
    int count = 0; //Счетчик совпадений.
 
    do
    {
        printf("Введите пароль : ");
        gets(scan_password);
    }while(strcmp(scan_password, true_password) != 0);
 
    printf("Введите строку : ");
    gets(string);
 
    Len = strlen(string);
 
    for(int i = 0; i < Len;i++)
    {
        if ((string[i] == 'a' || string[i] == 'A' || string[i] == 'а' || string[i] == 'А') && (string[i+1] == ' ' ||  
                string[i+1] == '\0'))
        {
            count++;
        }
    }
    printf("Слов оканчивающихся на букву а : %i\n",count);
 
    system("pause");
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2014, 10:30     Не правильно формирует строку
Посмотрите здесь:

C++ Как правильно открыть файл и считать из него строку?
Создать функцию, которая формирует строку, включив в нее все совпадающие символы двух строк C++
Подскажите, пожалуйста, как правильно объявить динамически расширяемую строку? C++
C++ Составить программу, которая по данной символьной строке формирует числовой массив, содержащий коды символов, составляющих строку.
Описать функцию, которая формирует текстовую строку C++
C++ Если предложение начинается с пробелов, считать строку после пробелов. Правильно ли работает функция?
C++ Как правильно удалить строку из файла?
Как правильно разобрать строку на C++? C++
Функция формирует массив и возвращает указатель на него C++
Как правильно создать строку, используя swprintf? C++
Написать функцию, которая формирует вектор C++
как правильно понять строку в коде? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dzrkot
zzzZZZ...
518 / 348 / 53
Регистрация: 11.09.2013
Сообщений: 1,994
18.02.2014, 10:51     Не правильно формирует строку #2
setlocale(LC_ALL,"Russian"); как я помню
кверти
4 / 4 / 1
Регистрация: 22.09.2013
Сообщений: 139
Завершенные тесты: 2
18.02.2014, 11:45  [ТС]     Не правильно формирует строку #3
Цитата Сообщение от dzrkot Посмотреть сообщение
setlocale(LC_ALL,"Russian"); как я помню
Изменил. Ошибка осталась .
SatanaXIII
Супер-модератор
Эксперт С++
5580 / 2614 / 239
Регистрация: 01.11.2011
Сообщений: 6,428
Завершенные тесты: 1
18.02.2014, 11:49     Не правильно формирует строку #4
Цитата Сообщение от кверти Посмотреть сообщение
Ошибка осталась
Какая?
Extrim88
50 / 50 / 11
Регистрация: 08.02.2013
Сообщений: 189
18.02.2014, 12:19     Не правильно формирует строку #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Для этого подключаем к проекту заголовочный файл <windows.h>. В файле содержатся прототипы функций SetConsoleCP() и SetConsoleOutputCP(), они-то нам и нужны. Аргументом этих функций является идентификатор кодовой страницы, нужная нам страница win-cp 1251. Функция SetConsoleCP() устанавливает нужную кодовую таблицу, на поток ввода, тогда как функция SetConsoleOutputCP() устанавливает нужную кодовую таблицу, на поток вывода.

Есть один весомый недостаток у данных функций — они работают со шрифтом Lucida Console. По умолчанию в консоли стоит шрифт Consolas. Поэтому в командной строке необходимо настроить используемый шрифт. Для этого открываем cmd, заходим в свойства, в закладке Шрифт выбираем Lucida Console, нажимаем ОК и на этом настройка завершена.
Yandex
Объявления
18.02.2014, 12:19     Не правильно формирует строку
Ответ Создать тему
Опции темы

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