在一个文本内输入中文,另一文本显示该中文的拼音首字母! 在一个文本内输入中文,另一文本显示该中文的拼音首字母!请高手解答! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这是以前borland C++用过的函数,你可以改成C#试试AnsiString __fastcall GetPY(AnsiString AString){ //scripts: //存放国标一级汉字不同读音的起始区位码对应读音 char lc_firstletter[23] = {'a', 'b','c','d','e','f','g','h','j','k','l','m','n','o','p','q','r','s','t','w','x','y','z'} ; AnsiString ls_ch ; //临时单元 AnsiString ls_secondsectable ; //存放所有国标二级汉字读音 AnsiString ls_returnstr ; //返回串 //存放国标一级汉字不同读音的起始区位码 int li_secposvalues[23] = {1601,1637,1833,2078,2274,2302,2433,2594,2787,3106,3212,3472,3635,3722,3730,3858,4027,4086,4390,4558,4684,4925,5249 } ; int i , j ; unsigned char li_sectorcode ; //汉字区码 unsigned char li_positioncode ; //汉字位码 int li_secposcode ; //汉字区位码 int li_offset ; //二级字库偏移量 //set initial values ls_secondsectable="cjwgnspgcgne[y[btyyzdxykygt[jnnjqmbsgzscyjsyy[pgkbzgy[ywjkgkl" "jywkpjqhy[w[dzlsgmrypywwcckznkyygttnjjnykkzytcjnmcylqlypyqfqrpzslwbtgkjfyxjwzltb" "ncxjjjjtxdttsqzycdxxhgck[phffss[ybgxlppbyll[hlxs[zm[jhsojnghdzqyklgjhsgqzhxqgkez" "zwyscscjxyeyxadzpmdssmzjzqjyzc[j[wqjbyzpxgznzcpwhkxhqkmwfbpbydtjzzkqhylygxfptyj" "yyzpszlfchmqshgmxxsxj[dcsbbqbefsjyhxwgzkpylqbgldlcctnmayddkssngycsgxlyzaybnptsdk" "dylhgymylcxpy[jndqjwxqxfyyfjlejpzrxccqwqqsbnkymgplbmjrqcflnymyqmsqyrbcjthztqfrxq" "hxmjjcjlxqgjmshzkbswyemyltxfsydswlycjqxsjnqbsctyhbftdcyzdjwyghqfrxwckqkxebptlpxj" "zsrmebwhjlbjslyysmdxlclqkxlhxjrzjmfqhxhwywsbhtrxxglhqhfnm[ykldyxzpylgg[mtcfpajjz" "yljtyanjgbjplqgdzyqyaxbkysecjsznslyzhsxlzcghpxzhznytdsbcjkdlzayfmydlebbgqyzkxgld" "ndnyskjshdlyxbcghxypkdjmmzngmmclgwzszxzjfznmlzzthcsydbdllscddnlkjykjsycjlkwhqasd" "knhcsganhdaashtcplcpqybsdmpjlpzjoqlcdhjjysprchn[nnlhlyyqyhwzptczgwwmzffjqqqqyxac" "lbhkdjxdgmmydjxzllsygxgkjrywzwyclzmssjzldbyd[fcxyhlxchyzjq[qagmnyxpfrkssbjlyxysy" "glnscmhzwwmnzjjlxxhchsy[ttxrycyxbyhcsmxjsznpwgpxxtaybgajcxly[dccwzocwkccsbnhcpdy" "znfcyytyckxkybsqkkytqqxfcwchcykelzqbsqyjqcclmthsywhmktlkjlycxwheqqhtqh[pq[qscfym" "ndmgbwhwlgsllysdlmlxpthmjhwljzyhzjxhtxjlhxrswlwzjcbxmhzqxsdzpmgfcsglsxymjshxpjxw" "myqksmyplrthbxftpmhyxlchlhlzylxgsssstclsldclrpbhzhxyyfhb[gdmycnqqwlqhjj[ywjzyejj" "dhpblqxtqkwhlchqxagtlxljxmsl[htzkzjecxjcjnmfby[sfywybjzgnysdzsqyrsljpclpwxsdwejb" "jcbcnaytwgmpapclyqpclzxsbnmsggfnzjjbzsfzyndxhplqkzczwalsbccjx[yzgwkypsgxfzfcdkhj" "gxdlqfsgdslqwzkxtmhsbgzmjzrglyjbpmlmsxlzjqqhzyjczydjwbmyklddpmjegxyhylxhlqyqhkyc" "wcjmyyxnatjhyccxzpcqlbzwwytwbqcmlpmyrjcccxfpznzzljplxxyztzlgdldcklyrzzgqtgjhhgjl" "jaxfgfjzslcfdqzlclgjdjcsnzlljpjqdcclcjxmyzftsxgcgsbrzxjqqctzhgyqtjqqlzxjylylbcya" "mcstylpdjbyregklzyzhlyszqlznwczcllwjqjjjkdgjzolbbzppglghtgzxyghzmycnqsycyhbhgxka" "mtxyxnbskyzzgjzlqjdfcjxdygjqjjpmgwgjjjpkqsbgbmmcjssclpqpdxcdyyky[cjddyygywrhjrtg" "znyqldkljszzgzqzjgdykshpzmtlcpwnjafyzdjcnmwescyglbtzcgmssllyxqsxsbsjsbbsgghfjlyp" "mzjnlyywdqshzxtyywhmzyhywdbxbtlmsyyyfsxjc[dxxlhjhf[sxzqhfzmzcztqcxzxrttdjhnnyzqq" "mnqdmmg[ydxmjgdhcdyzbffallztdltfxmxqzdngwqdbdczjdxbzgsqqddjcmbkzffxmkdmdsyyszcml" "jdsynsbrskmkmpcklgdbqtfzswtfgglyplljzhgj[gypzltcsmcnbtjbqfkthbyzgkpbbymtdssxtbnp" "dkleycjnyddykzddhqhsdzsctarlltkzlgecllkjlqjaqnbdkkghpjtzqksecshalqfmmgjnlyjbbtml" "yzxdcjpldlpcqdhzycbzsczbzmsljflkrzjsnfrgjhxpdhyjybzgdlqcsezgxlblgyxtwmabchecmwyj" "yzlljjyhlg[djlslygkdzpzxjyyzlwcxszfgwyydlyhcljscmbjhblyzlycblydpdqysxqzbytdkyxjy" "[cnrjmpdjgklcljbctbjddbblblczqrppxjcjlzcshltoljnmdddlngkaqhqhjgykheznmshrp[qqjch" "gmfprxhjgdychghlyrzqlcyqjnzsqtkqjymszswlcfqqqxyfggyptqwlmcrnfkkfsyylqbmqammmyxct" "pshcptxxzzsmphpshmclmldqfyqxszyydyjzzhqpdszglstjbckbxyqzjsgpsxqzqzrqtbdkyxzkhhgf" "lbcsmdldgdzdblzyycxnncsybzbfglzzxswmsccmqnjqsbdqsjtxxmbltxzclzshzcxrqjgjylxzfjph" "ymzqqydfqjjlzznzjcdgzygctxmzysctlkphtxhtlbjxjlxscdqxcbbtjfqzfsltjbtkqbxxjjljchcz" "dbzjdczjdcprnpqcjpfczlclzxzdmxmphjsgzgszzqlylwtjpfsyasmcjbtzkycwmytcsjjljcqlwzma" "lbxyfbpnlsfhtgjwejjxxglljstgshjqlzfkcgnnnszfdeqfhbsaqtgylbxmmygszldydqmjjrgbjtkg" "dhgkblqkbdmbylxwcxyttybkmrtjzxqjbhlmhmjjzmqasldcyxyqdlqcafywyxqhz " ; //get it ! ls_returnstr = "" ; for( i=1 ; i <= AString.Length() ;i++ )//依次处理AString中每个字符 { ls_ch = AString.SubString(i , 1) ; if((unsigned char)(ls_ch[1])<128) //非汉字 { ls_returnstr = ls_returnstr+ls_ch ; //不变 } else //是汉字 { ls_ch = AString.SubString( i , 2) ; //取出此汉字 li_sectorcode = ls_ch[1] - 160 ; //区码 li_positioncode = ls_ch[2] - 160 ; //位码 li_secposcode = li_sectorcode*100 + li_positioncode ;//区位码 if(li_secposcode>1600 && li_secposcode<5590)//第一个字符 { for( j=23 ;j>= 0 ;j--)//找声母 { if(li_secposcode>=li_secposvalues[j]) { ls_returnstr = ls_returnstr + lc_firstletter[j] ; break ; } } } else//第一个字符 { li_offset = (li_sectorcode - 56 ) *94 + li_positioncode - 1 ;// 计算偏移量 if( li_offset>=0 && li_offset<=3007)//二区汉字 { ls_returnstr = ls_returnstr + ls_secondsectable.SubString(li_offset , 1) ;//取出此字声母 } } i = i+1 ;//指向下一个汉字 } }// 处理完毕 //return result return ls_returnstr.LowerCase() ;//返回 AString 的声母串} 论坛回复会自动加空格,上述代码中,单引号和双引号中是没有空格的,只有ls_secondsectable最后有一个空格 datagridview的一个问题。 关于SqlDataAdapter更新dataset的问题 让WCF控制SQL SERVER 负载均衡 求一个ASP.NET 2.0 gridview 完全功能示例 错误 1 非静态的字段、方法或属性“动物比赛.Form1.Cat.Shout()”要求对象引用 怎么将数据库和程序打包啊? C#中ICS端口设置问题? 如何在WinFrom中实现图片的放大缩小 在Sql server 和access中如何过滤掉某个字段 请问我的DataColumn会不会销毁 有关findControl() 关于在DataGridView中按Tab和回车的响应事件
AnsiString __fastcall GetPY(AnsiString AString)
{
//scripts:
//存放国标一级汉字不同读音的起始区位码对应读音
char lc_firstletter[23] = {'a', 'b','c','d','e','f','g','h','j','k','l','m','n',
'o','p','q','r','s','t','w','x','y','z'} ;
AnsiString ls_ch ; //临时单元
AnsiString ls_secondsectable ; //存放所有国标二级汉字读音
AnsiString ls_returnstr ; //返回串
//存放国标一级汉字不同读音的起始区位码
int li_secposvalues[23] = {1601,1637,1833,2078,2274,2302,2433,2594,2787,
3106,3212,3472,3635,
3722,3730,3858,4027,4086,4390,4558,4684,4925,5249 } ;
int i , j ;
unsigned char li_sectorcode ; //汉字区码
unsigned char li_positioncode ; //汉字位码
int li_secposcode ; //汉字区位码
int li_offset ; //二级字库偏移量 //set initial values
ls_secondsectable="cjwgnspgcgne[y[btyyzdxykygt[jnnjqmbsgzscyjsyy[pgkbzgy[ywjkgkl"
"jywkpjqhy[w[dzlsgmrypywwcckznkyygttnjjnykkzytcjnmcylqlypyqfqrpzslwbtgkjfyxjwzltb"
"ncxjjjjtxdttsqzycdxxhgck[phffss[ybgxlppbyll[hlxs[zm[jhsojnghdzqyklgjhsgqzhxqgkez"
"zwyscscjxyeyxadzpmdssmzjzqjyzc[j[wqjbyzpxgznzcpwhkxhqkmwfbpbydtjzzkqhylygxfptyj"
"yyzpszlfchmqshgmxxsxj[dcsbbqbefsjyhxwgzkpylqbgldlcctnmayddkssngycsgxlyzaybnptsdk"
"dylhgymylcxpy[jndqjwxqxfyyfjlejpzrxccqwqqsbnkymgplbmjrqcflnymyqmsqyrbcjthztqfrxq"
"hxmjjcjlxqgjmshzkbswyemyltxfsydswlycjqxsjnqbsctyhbftdcyzdjwyghqfrxwckqkxebptlpxj"
"zsrmebwhjlbjslyysmdxlclqkxlhxjrzjmfqhxhwywsbhtrxxglhqhfnm[ykldyxzpylgg[mtcfpajjz"
"yljtyanjgbjplqgdzyqyaxbkysecjsznslyzhsxlzcghpxzhznytdsbcjkdlzayfmydlebbgqyzkxgld"
"ndnyskjshdlyxbcghxypkdjmmzngmmclgwzszxzjfznmlzzthcsydbdllscddnlkjykjsycjlkwhqasd"
"knhcsganhdaashtcplcpqybsdmpjlpzjoqlcdhjjysprchn[nnlhlyyqyhwzptczgwwmzffjqqqqyxac"
"lbhkdjxdgmmydjxzllsygxgkjrywzwyclzmssjzldbyd[fcxyhlxchyzjq[qagmnyxpfrkssbjlyxysy"
"glnscmhzwwmnzjjlxxhchsy[ttxrycyxbyhcsmxjsznpwgpxxtaybgajcxly[dccwzocwkccsbnhcpdy"
"znfcyytyckxkybsqkkytqqxfcwchcykelzqbsqyjqcclmthsywhmktlkjlycxwheqqhtqh[pq[qscfym"
"ndmgbwhwlgsllysdlmlxpthmjhwljzyhzjxhtxjlhxrswlwzjcbxmhzqxsdzpmgfcsglsxymjshxpjxw"
"myqksmyplrthbxftpmhyxlchlhlzylxgsssstclsldclrpbhzhxyyfhb[gdmycnqqwlqhjj[ywjzyejj"
"dhpblqxtqkwhlchqxagtlxljxmsl[htzkzjecxjcjnmfby[sfywybjzgnysdzsqyrsljpclpwxsdwejb"
"jcbcnaytwgmpapclyqpclzxsbnmsggfnzjjbzsfzyndxhplqkzczwalsbccjx[yzgwkypsgxfzfcdkhj"
"gxdlqfsgdslqwzkxtmhsbgzmjzrglyjbpmlmsxlzjqqhzyjczydjwbmyklddpmjegxyhylxhlqyqhkyc"
"wcjmyyxnatjhyccxzpcqlbzwwytwbqcmlpmyrjcccxfpznzzljplxxyztzlgdldcklyrzzgqtgjhhgjl"
"jaxfgfjzslcfdqzlclgjdjcsnzlljpjqdcclcjxmyzftsxgcgsbrzxjqqctzhgyqtjqqlzxjylylbcya"
"mcstylpdjbyregklzyzhlyszqlznwczcllwjqjjjkdgjzolbbzppglghtgzxyghzmycnqsycyhbhgxka"
"mtxyxnbskyzzgjzlqjdfcjxdygjqjjpmgwgjjjpkqsbgbmmcjssclpqpdxcdyyky[cjddyygywrhjrtg"
"znyqldkljszzgzqzjgdykshpzmtlcpwnjafyzdjcnmwescyglbtzcgmssllyxqsxsbsjsbbsgghfjlyp"
"mzjnlyywdqshzxtyywhmzyhywdbxbtlmsyyyfsxjc[dxxlhjhf[sxzqhfzmzcztqcxzxrttdjhnnyzqq"
"mnqdmmg[ydxmjgdhcdyzbffallztdltfxmxqzdngwqdbdczjdxbzgsqqddjcmbkzffxmkdmdsyyszcml"
"jdsynsbrskmkmpcklgdbqtfzswtfgglyplljzhgj[gypzltcsmcnbtjbqfkthbyzgkpbbymtdssxtbnp"
"dkleycjnyddykzddhqhsdzsctarlltkzlgecllkjlqjaqnbdkkghpjtzqksecshalqfmmgjnlyjbbtml"
"yzxdcjpldlpcqdhzycbzsczbzmsljflkrzjsnfrgjhxpdhyjybzgdlqcsezgxlblgyxtwmabchecmwyj"
"yzlljjyhlg[djlslygkdzpzxjyyzlwcxszfgwyydlyhcljscmbjhblyzlycblydpdqysxqzbytdkyxjy"
"[cnrjmpdjgklcljbctbjddbblblczqrppxjcjlzcshltoljnmdddlngkaqhqhjgykheznmshrp[qqjch"
"gmfprxhjgdychghlyrzqlcyqjnzsqtkqjymszswlcfqqqxyfggyptqwlmcrnfkkfsyylqbmqammmyxct"
"pshcptxxzzsmphpshmclmldqfyqxszyydyjzzhqpdszglstjbckbxyqzjsgpsxqzqzrqtbdkyxzkhhgf"
"lbcsmdldgdzdblzyycxnncsybzbfglzzxswmsccmqnjqsbdqsjtxxmbltxzclzshzcxrqjgjylxzfjph"
"ymzqqydfqjjlzznzjcdgzygctxmzysctlkphtxhtlbjxjlxscdqxcbbtjfqzfsltjbtkqbxxjjljchcz"
"dbzjdczjdcprnpqcjpfczlclzxzdmxmphjsgzgszzqlylwtjpfsyasmcjbtzkycwmytcsjjljcqlwzma"
"lbxyfbpnlsfhtgjwejjxxglljstgshjqlzfkcgnnnszfdeqfhbsaqtgylbxmmygszldydqmjjrgbjtkg"
"dhgkblqkbdmbylxwcxyttybkmrtjzxqjbhlmhmjjzmqasldcyxyqdlqcafywyxqhz " ;
//get it !
ls_returnstr = "" ;
for( i=1 ; i <= AString.Length() ;i++ )//依次处理AString中每个字符
{
ls_ch = AString.SubString(i , 1) ;
if((unsigned char)(ls_ch[1])<128) //非汉字
{
ls_returnstr = ls_returnstr+ls_ch ; //不变
}
else //是汉字
{
ls_ch = AString.SubString( i , 2) ; //取出此汉字
li_sectorcode = ls_ch[1] - 160 ; //区码
li_positioncode = ls_ch[2] - 160 ; //位码
li_secposcode = li_sectorcode*100 + li_positioncode ;//区位码
if(li_secposcode>1600 && li_secposcode<5590)//第一个字符
{
for( j=23 ;j>= 0 ;j--)//找声母
{
if(li_secposcode>=li_secposvalues[j])
{
ls_returnstr = ls_returnstr + lc_firstletter[j] ;
break ;
}
}
}
else//第一个字符
{
li_offset = (li_sectorcode - 56 ) *94 + li_positioncode - 1 ;// 计算偏移量
if( li_offset>=0 && li_offset<=3007)//二区汉字
{
ls_returnstr = ls_returnstr + ls_secondsectable.SubString(li_offset , 1) ;//取出此字声母
}
}
i = i+1 ;//指向下一个汉字
}
}// 处理完毕
//return result
return ls_returnstr.LowerCase() ;//返回 AString 的声母串
}