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

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

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

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

18.02.2014, 10:30. Просмотров 248. Ответов 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++
Дан текст в файле F1 в виде: ИМЯ ОТЧЕСТВО ФАМИЛИЯ_1 ИМЯ ОТЧЕСТВО ФАМИЛИЯ_2 ... Описать функцию, которая формирует текстовую строку...

Создать функцию, которая формирует строку, включив в нее все совпадающие символы двух строк - C++
создать функцию которая формирует строку, включив в нее все совпадающие символы двух строк

Составить программу, которая по данной символьной строке формирует числовой массив, содержащий коды символов, составляющих строку. - C++
Составить программу, которая по данной символьной строке формирует числовой массив, содержащий коды символов, составляющих строку.

Как правильно разобрать строку на C++? - C++
В программе#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;vector&gt; #include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; using namespace std;...

как правильно понять строку в коде? - C++
#include &lt;iostream&gt; #include &lt;cstdio&gt; using namespace std; int main() { int t , i; char text ; for (t=0 ; t&lt;10 ;...

Как правильно удалить строку из файла? - C++
void deletez(char db) {data *p; int nomer; readdb(db); ofstream f; f.open(db); cout&lt;&lt;&quot;kakoy nomer udalit?&quot;&lt;&lt;endl; ...

Как правильно создать строку, используя swprintf? - C++
Дело в том, что мне нужно записать три числа в строку: double, int и double. Числа такие: 1.1414 4 3.4402 (это примеры, сами числа...

Как правильно открыть файл и считать из него строку? - C++
Прювет! подскажите пажалста, как правильно открыть и считать строку из файла. весь функционал по обработке уже написал, а тут застрял...

Подскажите, пожалуйста, как правильно объявить динамически расширяемую строку? - C++
Подскажите, пожалуйста, как правильно объявить динамически расширяемую строку? Когда я объявляю так: char* ch1=new char; и считываю её...

Написать функцию, которая формирует вектор - C++
Ребят ,помогите написать программу. Написать функцию, которая формирует вектор, элементами которого будут минимальные элементы каждого...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dzrkot
zzzZZZ...
518 / 348 / 53
Регистрация: 11.09.2013
Сообщений: 1,995
18.02.2014, 10:51     Не правильно формирует строку #2
setlocale(LC_ALL,"Russian"); как я помню
кверти
4 / 4 / 1
Регистрация: 22.09.2013
Сообщений: 148
Завершенные тесты: 2
18.02.2014, 11:45  [ТС]     Не правильно формирует строку #3
Цитата Сообщение от dzrkot Посмотреть сообщение
setlocale(LC_ALL,"Russian"); как я помню
Изменил. Ошибка осталась .
SatanaXIII
Супер-модератор
Эксперт С++
5592 / 2626 / 239
Регистрация: 01.11.2011
Сообщений: 6,457
Завершенные тесты: 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     Не правильно формирует строку
Ответ Создать тему
Опции темы

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