⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 high.cpp

📁 将汉字转换为拼音首字母和拼音全称的程序 可以用于汉字to拼音的钻换
💻 CPP
字号:
// High.cpp : implementation file
//

#include "stdafx.h"
#include "汉字to拼音简写.h"
#include "High.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/*定义的拼音字典,使用全局变量:	DICTIONARY MyDict
typedef struct _dict{
	char data[10];
	int num;
} DICTIONARY;
*/
#include "dictionary.h"


/////////////////////////////////////////////////////////////////////////////
// CHigh dialog


CHigh::CHigh(CWnd* pParent /*=NULL*/)
	: CDialog(CHigh::IDD, pParent)
{
	//{{AFX_DATA_INIT(CHigh)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CHigh::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CHigh)
		// NOTE: the ClassWizard will add DDX and DDV calls here
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CHigh, CDialog)
	//{{AFX_MSG_MAP(CHigh)
	ON_BN_CLICKED(IDC_REVERSE, OnReverse)
	ON_BN_CLICKED(IDC_CLEAR_NEW, OnClearNew)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CHigh message handlers

void CHigh::OnReverse()   
{
	CString sInput;
	
	GetDlgItemText(IDC_SOURCE_IN,sInput);
	
	if (CheckInputStr(sInput))
	{

	SetDlgItemText(IDC_RESULT_OUT,GetPYString(sInput));
	}
	else
	{
		MessageBox("输入的字符串不是偶数个英文字符,无法进行翻译!","错误",MB_OK | MB_ICONSTOP);
	}
}

CString CHigh::GetPYString(CString src)
{

	CString strResult = "";
    CString sDoubleChar;

	int iLen = src.GetLength();

	for (int i=0; i<iLen; i=i+2)
	{
	
		sDoubleChar = src.Mid(i,2);//获得一个汉字
	
		strResult += GetPYChar(sDoubleChar) + " ";
	}

	
	return strResult;

}

CString CHigh::GetPYChar(CString src)
{

	unsigned char tmp[2]; //必须用无符号的。
	CString sResult;
	
	tmp[0] = src.GetAt(0);
	tmp[1] = src.GetAt(1);
	
	
	int i = (short)(tmp[0] - '\0') * 256 + ((short)(tmp[1] - '\0')) - 256*256; 

	
	if (i < -20319 || i > -10254)//检验输入汉字是否合法
	{
		if (src == "\r\n") return "\r\n";
		return "\r\n[" + src + "]  是《GB2312简体中文编码表》以外的汉字或字符,无法检索!!\r\n";
	}

	for (int n=DICTION_MAX - 1; n >=0 ; n--) 
	{
		if (i >= MyDict[n].num)
		{
			
			sResult.Format("%s",MyDict[n].data);
			return sResult;
			
		}
	
	}

	return sResult;
}

void CHigh::OnClearNew() 
{
	CWnd *p = GetDlgItem(IDC_SOURCE_IN);
	p->SetWindowText("");
	p->SetFocus();
	p = GetDlgItem(IDC_RESULT_OUT);
	p->SetWindowText("");
	
}

BOOL CHigh::CheckInputStr(CString src)
{
	int iLen = src.GetLength();

	if (iLen%2 == 0)
	{		

		return TRUE;
	}
	else
	{
		return FALSE;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -