c語(yǔ)言用遞歸實(shí)現(xiàn)字符串逆序輸出 怎么用C語(yǔ)言實(shí)現(xiàn)漢字字符串的反轉(zhuǎn)?
怎么用C語(yǔ)言實(shí)現(xiàn)漢字字符串的反轉(zhuǎn)?看漢字編碼,windows一般是GBK,兩個(gè)字節(jié)作為一個(gè)漢字,第一個(gè)字節(jié)必須大于0xa0。在本例中,將兩個(gè)字節(jié)作為一個(gè)整體翻轉(zhuǎn)。對(duì)于那些有漢字的人來(lái)說(shuō),用一根線翻轉(zhuǎn)漢
怎么用C語(yǔ)言實(shí)現(xiàn)漢字字符串的反轉(zhuǎn)?
看漢字編碼,windows一般是GBK,兩個(gè)字節(jié)作為一個(gè)漢字,第一個(gè)字節(jié)必須大于0xa0。在本例中,將兩個(gè)字節(jié)作為一個(gè)整體翻轉(zhuǎn)。對(duì)于那些有漢字的人來(lái)說(shuō),用一根線翻轉(zhuǎn)漢字是很麻煩的。最好用另一個(gè)字符串存儲(chǔ)它們。
void reverse uuo with uuChinese(char*s){char*P int len=strlen(s)int i,t P=(char*)malloc(len 1)P[len]=0,t=len for(i=0,s[i]){if(s[i]>0xa0)//漢字{P[t-1]=s[i]P[t]=a[i 1]t-=2,i=2}否則{P[t--]=s[i]}}strcpy(s,P) 免費(fèi)(P)}
以下是程序代碼:#include<stdio。H>intgnn(int){intjintlast=1for(J=0j<ej){last=10*last}return last}void fun(longintn,INTN){intnextif(n<1){printf(“”)return}else{next=n/GNN(n-1)printf(%d”,next)fun(n%GNN(n-1),n-1)}void main(){longintnprintf(“請(qǐng)輸入要轉(zhuǎn)換的數(shù)字:”)scanf(%d”,&n)INTN=1longintk=n/10For(inti=0k!=0I)}{k=k/10N}Printf(“轉(zhuǎn)換輸出為:”)Printf(“”)fun(n,n)Printf(“”)//getch()}