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

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

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

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

18.02.2014, 10:30. Просмотров 252. Ответов 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");
}
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.02.2014, 10:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не правильно формирует строку (C++):

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

Описать функцию, которая формирует текстовую строку - C++
Дан текст в файле F1 в виде: ИМЯ ОТЧЕСТВО ФАМИЛИЯ_1 ИМЯ ОТЧЕСТВО ФАМИЛИЯ_2 ... Описать функцию, которая формирует текстовую строку...

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

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

Как правильно преобразовать строку символов в строку типа CComBSTR? - C++
Как правильно преобразовать строку символов (например заданную как char p)в строку типа CComBSTR?

Написать и протестировать функцию, которая по заданной строке Str формирует новую строку, состоящую только из цифр, входящих в Str - C++
Помогите ребят!!!!препод задачи дал для аттестации,сделал фактически все,кроме этой: &quot;Написать и протестировать функцию, которая по...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 1,998
18.02.2014, 10:51 #2
setlocale(LC_ALL,"Russian"); как я помню
0
кверти
4 / 4 / 1
Регистрация: 22.09.2013
Сообщений: 154
Завершенные тесты: 2
18.02.2014, 11:45  [ТС] #3
Цитата Сообщение от dzrkot Посмотреть сообщение
setlocale(LC_ALL,"Russian"); как я помню
Изменил. Ошибка осталась .
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,529
Завершенные тесты: 1
18.02.2014, 11:49 #4
Цитата Сообщение от кверти Посмотреть сообщение
Ошибка осталась
Какая?
0
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, нажимаем ОК и на этом настройка завершена.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.02.2014, 12:19
Привет! Вот еще темы с ответами:

Как правильно разобрать строку на 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++
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; ...

как правильно понять строку в коде? - 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 ;...

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.02.2014, 12:19
Ответ Создать тему
Опции темы

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