#include <windows.h>
#include <iostream>
#include <stdio.h>
#include <conio.h>
using namespace std;
string str="";
void GotoXY(int x, int y){
COORD co = {x,y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE) , co);
}
void TGoto(short x, short y, string str){
GotoXY(x,y); cout<<str;
}
int Lcase(short c){
if ((c<=91) && (c>=65)) return (c+32);
if ((c<=123) && (c>=97))return c;
}
string TiengViet(string str){
short l,i;
int tmp;
l=str.length();
for (i=0; i<=l; i++){
tmp=str[i]+str[i+1];//Xet 2 ki tu lien nhau
switch (tmp){
case 97 +97 : if(str[i]=='a'){str[i]=131; str.erase(i+1,1);} break;//aa
case 101+101: if(str[i]=='e'){str[i]=136; str.erase(i+1,1);} break;//ee
case 111+111: if(str[i]=='o'){str[i]=147; str.erase(i+1,1);} break;//oo
case 111+119: if(str[i]=='u'){str[i]=117; str.erase(i+1,1);} break;//ow
case 111+106: if(str[i]=='o'){str[i]=111; str.erase(i+1,1);} break;//oj
//f
case 97 +102: if(str[i]=='a'){str[i]=133; str.erase(i+1,1);} break;//af
case 101+102: if(str[i]=='e'){str[i]=138; str.erase(i+1,1);} break;//ef
case 117+102: if(str[i]=='u'){str[i]=151; str.erase(i+1,1);} break;//uf
case 105+102: if(str[i]=='i'){str[i]=141; str.erase(i+1,1);} break;//if
case 111+102: if(str[i]=='o'){str[i]=149; str.erase(i+1,1);} break;//of
//s
case 97 +115: if(str[i]=='a'){str[i]=160; str.erase(i+1,1);} break;//as
case 101+115: if(str[i]=='e'){str[i]=130; str.erase(i+1,1);} break;//es
case 105+115: if(str[i]=='i'){str[i]=161; str.erase(i+1,1);} break;//is
case 111+115: if(str[i]=='o'){str[i]=162; str.erase(i+1,1);} break;//os
case 117+115: if(str[i]=='u'){str[i]=163; str.erase(i+1,1);} break;//us
}
switch (tmp){//Tranh viec trung lap o Switch tren
//w
case 100+100: if(str[i]=='d'){str[i]=100; str.erase(i+1,1);} break;//dd
case 97 +119: if(str[i]=='a'){str[i]=97 ; str.erase(i+1,1);} break;//aw
case 111+119: if(str[i]=='o'){str[i]=111; str.erase(i+1,1);} break;//ow
case 117+119: if(str[i]=='u'){str[i]=117; str.erase(i+1,1);} break;//uw
//j
case 97 +106: if(str[i]=='a'){str[i]=97 ; str.erase(i+1,1);} break;//aj
case 105+106: if(str[i]=='i'){str[i]=105; str.erase(i+1,1);} break;//ej
case 101+106: if(str[i]=='e'){str[i]=101; str.erase(i+1,1);} break;//ej
case 117+106: if(str[i]=='u'){str[i]=117; str.erase(i+1,1);} break;//uj
//x
case 97 +120: if(str[i]=='a'){str[i]=97 ; str.erase(i+1,1);} break;//ax
case 101+120: if(str[i]=='e'){str[i]=101; str.erase(i+1,1);} break;//ex
case 105+120: if(str[i]=='i'){str[i]=105; str.erase(i+1,1);} break;//ex
case 111+120: if(str[i]=='o'){str[i]=111; str.erase(i+1,1);} break;//ox
case 117+120: if(str[i]=='u'){str[i]=117; str.erase(i+1,1);} break;//ux
}
}
return str;
}
void Tips(){
TGoto(0,0,"GoTiengViet tren C++ (Kieu Telex & bang ma ASCII)");
TGoto(1,1,TiengViet(" - Casc kis tu hoo tro: aa, oo, ee, as, es us, is, af, ef, uf, if"));
TGoto(1,2,TiengViet(" - aan Enter dee keet thusc"));
TGoto(1,3,TiengViet(" - Khoong vieet duoc chu hoa"));
}
string GoTiengViet(string str, short x, short y){
char tmp;
short i,l=0;
do{
tmp=getch();
tmp=Lcase(tmp); //Chuyen thanh chu thuong
//lam dep
GotoXY(0,2); cout<<" "; GotoXY(0,2); cout<<l+1<<"/"<<"255";
GotoXY(x,y);
for (i=0; i<=l-1; i++)
TGoto(i+x,y," "); //Xoa viet lai tu dau
if ((int)tmp==8) {//BackSpace
if (l==0) GoTiengViet(str,x,y);//Tranh Loi Khi chua go ma an backspace
str.erase(l-1,1);
str=TiengViet(str);
TGoto(x,y,str);
l=str.length();
}
else{
str=str+tmp;
str=TiengViet(str);
TGoto(x,y,str);
l=str.length();
}
if (l>254) tmp=13;
}while(tmp!=13);
return str;
}
main(){
Tips();
cout<<endl<<TiengViet("Xin Chafo")<<endl<<endl;
str=GoTiengViet(str, 0, 6);
cout<<"";
/*
//Hien Thi Cac Ki Tu Trong Bang Ma ASCII
for (short i=1; i<=255; i++)
cout<<i<<"-"<<(char)i<<endl;
getch();
*/
}
Hì, ta sẽ đọc kí tự nhập vào, nếu đúng là kí tự cần mã hóa thì mã hóa nó
From Nông Ngọc Hoài
--
[*---------------Tùy chọn----------------*]
---
Bạn nhận được thư này vì bạn đã được đăng ký vào nhóm Google Groups "Lớp B2 Tin khóa D44 Học viện an ninh nhân dân".
Để hủy đăng ký nhóm này và ngừng nhận email từ nhóm, hãy gửi email tới b2tind44hvann...@googlegroups.com.
Để đăng bài lên nhóm này, hãy gửi email đến b2tind4...@googlegroups.com.
Truy cập nhóm này tại http://groups.google.com/group/b2tind44hvannd?hl=vi.
Để có thêm tùy chọn, hãy truy cập https://groups.google.com/groups/opt_out.