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

Работа со строками. Необходимо подсчитать слова содержащие русские и англ буквы - C++

Восстановить пароль Регистрация
 
factura122
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 70
06.01.2014, 23:57     Работа со строками. Необходимо подсчитать слова содержащие русские и англ буквы #1
Среда Visual C++2010
По логике должно работать, но почему то кириллица игнорируется, пытался исправить подключением библиотеки locale не помогло. При использовании одной лишь латиницы алгоритм работает...
В чём может быть проблема?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <conio.h>
#include <stdio.h>
#include <string>
void main()
{
    printf("input\n");
    char s[100];
    scanf("%[^\n]s",s);
    int count=0;
    if(s[0]>='A' && s[0]<='Z')
        count=1;
    else
        count=0;
    for(int i=0;i<strlen(s)-1;i++)
     {
         if(s[i]==' ' && ((s[i+1]>='A'&& s[i+1]<='Z' && s[i+1]>='A' && s[i+1]<='я') || (s[i+1]>='a'&& s[i+1]<='z' && s[i+1]>='А' && s[i+1]<='я')) )
             count++;
     }
    printf("result-%d",count);
    _getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.01.2014, 23:57     Работа со строками. Необходимо подсчитать слова содержащие русские и англ буквы
Посмотрите здесь:

C++ Вывести на экран слова, содержащие 3 буквы.
C++ Вывести на экран слова, содержащие три буквы
Удалить слова содержащие гласные буквы... C++
Строка: Подсчитать, сколько слов в строке, и вывести слова, содержащие 3 буквы. C++
C++ Строки (вывести все слова, содержащие только латинские буквы)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrLinch
 Аватар для MrLinch
12 / 10 / 6
Регистрация: 23.12.2012
Сообщений: 51
07.01.2014, 00:04     Работа со строками. Необходимо подсчитать слова содержащие русские и англ буквы #2
Попробуй

C++
1
2
3
4
5
6
7
8
9
....
#include <Windows.h>
 
int main() {
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251); 
 
    ...
}
factura122
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 70
07.01.2014, 00:09  [ТС]     Работа со строками. Необходимо подсчитать слова содержащие русские и англ буквы #3
А вообще проблема в кодировке?
MrLinch
 Аватар для MrLinch
12 / 10 / 6
Регистрация: 23.12.2012
Сообщений: 51
07.01.2014, 00:16     Работа со строками. Необходимо подсчитать слова содержащие русские и англ буквы #4
Другой причины я не вижу... После подключения locale в main вы писали
C++
1
setlocale(LC_ALL, "Russian");
?
factura122
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 70
07.01.2014, 00:21  [ТС]     Работа со строками. Необходимо подсчитать слова содержащие русские и англ буквы #5
Да именно это я и писал
vipslord
14 / 3 / 1
Регистрация: 09.12.2013
Сообщений: 33
07.01.2014, 09:10     Работа со строками. Необходимо подсчитать слова содержащие русские и англ буквы #6
У каждой буквы есть свой аск код. Попробуй сравни, может поможет.
Помню что где-то дома был исходник, где я делал задачу подобную.
Если не ошибаюсь, то аск код просто сравниваеться.
http://ascii.org.ru/

C++
1
2
3
4
5
6
7
8
 for (int i = 0; i < strlen(s)-1; i++){
       if (s[i] >= 140 && s[i] <= A50 || //A-Z
           s[i] >= 160 && s[i] <= A70 ||  //a-z
           s[i] >=180 && s[i] <= F90 ||  //А-Я
           s[i] >= 0A0 &&  s[i] <= FA0 || //а-п 
           s[i] >= 0E0 &&  s[i] <= FE0 ) // р-я
 
     } k++;
А еще проще считай просто пробелы, встретил пробел? == слово. Изначально счетчику +1.
Буду дома, утром, посмотрю исходники.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2014, 11:21     Работа со строками. Необходимо подсчитать слова содержащие русские и англ буквы
Еще ссылки по теме:

Подсчитать количество слов содержащие две согласные буквы C++
C++ Вывести на экран слова, содержащие три буквы.
Найти все слова, содержащие латинские буквы (a, e, i, o, u) C++

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

Или воспользуйтесь поиском по форуму:
factura122
0 / 0 / 0
Регистрация: 09.11.2012
Сообщений: 70
07.01.2014, 11:21  [ТС]     Работа со строками. Необходимо подсчитать слова содержащие русские и англ буквы #7
Спасибо, буду очень благодарен, проблема в том что работает со словами содержащими одну кодировку
Yandex
Объявления
07.01.2014, 11:21     Работа со строками. Необходимо подсчитать слова содержащие русские и англ буквы
Ответ Создать тему
Опции темы

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