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

Как модернезировать программу - C++

Восстановить пароль Регистрация
 
parkito
 Аватар для parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 685
19.06.2011, 16:54     Как модернезировать программу #1
Как можно модернезировать эту программу чтобы она понимала русские буквы ?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<iostream>
#include<ctype.h>
using namespace std;
int main ()
 
{
    char a;
    int b;
setlocale (LC_ALL, "Russian");
cout<<"Введи строчную или прописную букву, а я угадаю какая она "<<endl;
cin>>a;
b=islower(a);
if (b==0)
    cout<<"Ты ввел заглавную букву";
else cout<<"Ты ввел строчную букву";
cin.get();
cin.get();
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Daemon025
 Аватар для Daemon025
380 / 329 / 67
Регистрация: 06.12.2010
Сообщений: 900
19.06.2011, 16:58     Как модернезировать программу #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
unsigned int Length (const unsigned char s[])
 { int len = 0; while (s[len++]); return len - 1; }
 void WinToDos (unsigned char t[])
 {
 int n = Length(t);
 for (int i = 0; i < n; i++)
 {
 if (t > 239) { t -= 16; continue; }
 if (t > 191) { t -= 64; continue; }
 if (t == 184) { t = 241; continue; }
 if (t == 168) t = 240; 
 }
 }
Добавлено через 1 минуту
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
char* cyr(char* s)
 {
 unsigned char* p=s;
 while (*p)
 {
 if (*p==184)
 *p+=57;
 else
 {
 if (*p==168)
 *p+=72;
 else
 {
 if (*p>=192&&*p<=239)
 *p-=64;
 else
 {
 if (*p>=240&&*p<=255)
 *p-=16;
 }
 }
 }
 p++;
 }
 
 return s;
 }
parkito
 Аватар для parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 685
19.06.2011, 17:39  [ТС]     Как модернезировать программу #3
что вы написали я нечего не понял ! Не могли бы вы интегрировать ваш код в мою программу ?
silentnuke
Android Programmer
137 / 138 / 5
Регистрация: 08.12.2010
Сообщений: 421
19.06.2011, 17:41     Как модернезировать программу #4
Цитата Сообщение от Daemon025 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
unsigned int Length (const unsigned char s[])
 { int len = 0; while (s[len++]); return len - 1; }
 void WinToDos (unsigned char t[])
 {
 int n = Length(t);
 for (int i = 0; i < n; i++)
 {
 if (t > 239) { t -= 16; continue; }
 if (t > 191) { t -= 64; continue; }
 if (t == 184) { t = 241; continue; }
 if (t == 168) t = 240; 
 }
 }
Добавлено через 1 минуту
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
char* cyr(char* s)
 {
 unsigned char* p=s;
 while (*p)
 {
 if (*p==184)
 *p+=57;
 else
 {
 if (*p==168)
 *p+=72;
 else
 {
 if (*p>=192&&*p<=239)
 *p-=64;
 else
 {
 if (*p>=240&&*p<=255)
 *p-=16;
 }
 }
 }
 p++;
 }
 
 return s;
 }
эм, а чем не угодили strlen() библиотечная для получения длины, и AnsiToOem?
parkito
 Аватар для parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 685
20.06.2011, 12:13  [ТС]     Как модернезировать программу #5
Так как будет выглядеть моя программа, когда в нее впихнете, то что вы написали ?

Добавлено через 12 минут
Еще один вопрос нужно модернезировать вот эту программу

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <conio.h>  
using namespace std;
         
int main()
{setlocale(LC_ALL,"Russian");
  int chcount = 0;           
  int wdcount = 1;           
  char ch = 'a';            
  cout << "Введите строку: ";
  while(ch != '\r' )      
  {
    ch = getche();          
    if( ch == ' ' )         
      wdcount++;            
    else                     
      chcount++;             
  }                          
  cout << "\nCлов: " << wdcount << endl;
cout<< "Букв: " << (chcount-1)<< endl;
cin.get();
  return 0;
}
она должна производить подсчеты после нажатия интер. Но нужно сделать это так чтобы не прибегать к "экзотическим" методам. Как это осуществить ?
Yandex
Объявления
20.06.2011, 12:13     Как модернезировать программу
Ответ Создать тему
Опции темы

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