汉字交换

js_Allen 2013-10-31 05:20:50
请问如何随意输入n个汉字,然后将其倒序。
...全文
107 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
max_min_ 2013-11-01
  • 打赏
  • 举报
回复
引用 2 楼 u012655237 的回复:
不好意思,上面的看不懂,以下是我编的,请帮我找错 #include "stdafx.h" #include<iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) {char hz[4]={0};int i; cout<<"please input four characters:"<<endl; for(i=0;i<=4;++i) cin>>hz[i]; for(i=4;i>=0;--i) cout<<hz[i]; return 0; } 当我输入“东 邪 西 毒”,输出为“伟蝎”
直接这样是不行的!汉字貌似占两个字节的!所以,倒过来的时候得注意下 两个字节为一个单位倒叙过来!
xiaohuh421 2013-11-01
  • 打赏
  • 举报
回复
先弄字符, 因为它们都是单字节的. 汉字因为需要两个字节表示, 所以情况就不一样了. 如果汉字中有字符, 那你要考虑的就更多了.
ForestDB 2013-11-01
  • 打赏
  • 举报
回复
“随意输入n个字母,然后将其倒序。” 建议LZ先把这个弄会。
绿皮蛙 2013-11-01
  • 打赏
  • 举报
回复

#include "stdio.h"


int main()
{
	char ch[1024]={0};
	char c1=0,c2 =0;
	printf("输入:");
	scanf("%s",ch);
	//此处假设输入的是4个汉字
	c1 = ch[0];
	c2 = ch[1];
	ch[0]=ch[6];
	ch[1]=ch[7];
	ch[6]=c1;
	ch[7]=c2;
	
	c1 = ch[2];
	c2 = ch[3];
	ch[2]=ch[4];
	ch[3] = ch[5];
	ch[4]= c1;
	ch[5] =c2;
	printf("结果:%s",ch);
	getchar();
	return 0;
}
建议楼主去看一下各种编码 ascii utf8 utf16 gb2312 感觉用unsigned short保存会好一点
js_Allen 2013-11-01
  • 打赏
  • 举报
回复
鉴于以上建议,我终于编程代码,且运行结果挺满意的 #include "stdafx.h" #include<iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) {char hz[4]={0};int i;char c1,c2; cout<<"please input four characters:"<<endl; for(i=0;i<=7;++i) cin>>hz[i]; for(i=0;i<=2;i=i+2) { c1=0;c2=0; c1=hz[i];c2=hz[i+1]; hz[i]=hz[6-i];hz[i+1]=hz[7-i]; hz[6-i]=c1;hz[7-i]=c2; } for(i=0;i<=7;++i) cout<<hz[i]; return 0; }
js_Allen 2013-10-31
  • 打赏
  • 举报
回复
不好意思,上面的看不懂,以下是我编的,请帮我找错 #include "stdafx.h" #include<iostream> using namespace std; int _tmain(int argc, _TCHAR* argv[]) {char hz[4]={0};int i; cout<<"please input four characters:"<<endl; for(i=0;i<=4;++i) cin>>hz[i]; for(i=4;i>=0;--i) cout<<hz[i]; return 0; } 当我输入“东 邪 西 毒”,输出为“伟蝎”
还有多远 2013-10-31
  • 打赏
  • 举报
回复
lz先要知道汉字是用两个字节表示的全角字符,然后就好办了,直接像调换char一样调换这两个汉字的高字节和低字节即可:

#include <stdio.h>

int main()
{
    char s[] = "Ôõô°ìÄØ£¿", c;
    
    puts(s); 
    //½»»»ÄغÍÔõµÄµÚ1¸ö×Ö½Ú  
    c = s[6];
    s[6] = s[0];
    s[0] = c;
    //½»»»ÄغÍÔõµÄµÚ2¸ö×Ö½Ú 
    c = s[7];
    s[7] = s[1];
    s[1] = c;
    puts(s); 
    
    getchar();
    return 0;
}

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧