| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 732 人关注过本帖, 1 人收藏
标题:c语言求助,关于反序问题
取消只看楼主 加入收藏
雨夜2133
Rank: 1
等 级:新手上路
帖 子:6
专家分:5
注 册:2011-7-11
收藏(1)
 问题点数:0 回复次数:3 
c语言求助,关于反序问题
输入字符串str,倒叙输出str,注意支持中文,例如 “Tom吃西瓜” 输出 “瓜西吃moT”。
我能单独将汉字或者字母反序,但是放在一起就做不到了,是不是应该先判定是什么类型,在反序阿!但是应该怎么判定又不知道了,麻烦看到的支支招!谢了!!
搜索更多相关主题的帖子: c语言 中文 吃西瓜 字符串 汉字 
2011-07-11 16:05
雨夜2133
Rank: 1
等 级:新手上路
帖 子:6
专家分:5
注 册:2011-7-11
收藏
得分:0 
thank

[ 本帖最后由 雨夜2133 于 2011-7-12 16:16 编辑 ]
2011-07-12 16:15
雨夜2133
Rank: 1
等 级:新手上路
帖 子:6
专家分:5
注 册:2011-7-11
收藏
得分:0 
回复 2楼 laoyang103
谢谢啊!!!!
2011-07-12 16:15
雨夜2133
Rank: 1
等 级:新手上路
帖 子:6
专家分:5
注 册:2011-7-11
收藏
得分:0 
我发现一种很简单的方法,就是开始就将他们反序,然后再来将其中的汉字部分做变化,因为反过顺序后,汉字变成其他的字,只要把他们变回来就行了!!
#include<stdio.h>
void main()
{
    char s[80];
    int i,t,n=0,temp;
    gets(s);
    while(s[n]!='\0')
        n++;
    for(i=0;i<n/2;i++)
    {
        t=s[i];//将字符串反序
        s[i]=s[n-i-1];
        s[n-i-1]=t;
    }
    i=0;
    while(i<n)
    {
        if(s[i]>128||s[i]<0)//判断是否是汉字
        {
            temp=s[i];//将汉字变为原来的字
            s[i]=s[i+1];
            s[i+1]=temp;
            i=i+2;//汉字占两个字符,所以加2.
        }
        else
            i++;
    }
    puts(s);
}

[ 本帖最后由 雨夜2133 于 2011-7-12 17:30 编辑 ]
2011-07-12 17:28
快速回复:c语言求助,关于反序问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025646 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved