| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 953 人关注过本帖
标题:很难的倒叙输出!!!!
只看楼主 加入收藏
jokercodes
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2009-10-5
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
很难的倒叙输出!!!!
输入入一句话,例如:OK? I am a student,要求去掉符号和多余空格并且字母倒放如:KO I ma a tneduts
希望大虾帮帮忙。。。分不多
搜索更多相关主题的帖子: 输出 倒叙 
2010-01-04 16:58
指手画脚
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:334
专家分:560
注 册:2009-12-28
收藏
得分:20 
2个小时前刚要写好 就有人找我吃饭
程序代码:
#include <stdio.h>
#include <string.h>

// 函数说明:将字符串反向存储,并将内容进行整理
// 函数参数:char* szLines 要整理的字符串
// 函数参数:const bool bTrim 是否对字符串进行整理(不能修改)
// 返回值:整理后的字符串
char* OppositeStr(char* szLines, const bool bTrim)
{
    int nLen = -1;            // 字符串长度
    char szBuffer[1024] = "";// 保存整理后的字符串
    int nWordPos = 0;        // 保存字符串的当前位置
    int i = -1;
    
    // 判断字符串是否合法
    if (NULL == szLines)
        return NULL;

    // 倒置保存字符串
    nLen = strlen(szLines);
    for (i=nLen-1; i>=0; i--)
    {
        // 如果不需要整理,那直接倒序记录就可以
        if (!bTrim)
        {
            szBuffer[nWordPos] = szLines[i];
            nWordPos++;
            continue;
        }

        // 如果需要整理,则要判断当前字符是否为字母
        if (('A' <= szLines[i] && 'Z' >= szLines[i]) || 
            ('a' <= szLines[i] && 'z' >= szLines[i]))
        {
            szBuffer[nWordPos] = szLines[i];
            nWordPos++;
            continue;
        }

        // 当前为非字母字符,则判断前一个字符串是否为空格
        if (0 == nWordPos || ' ' == szBuffer[nWordPos-1])
            continue;

        // 完成一个单词的排序,将字符串加载一个空格
        szBuffer[nWordPos] = ' ';    // 如果需要要求最后一个词不能为空格,那这里还需要修改一下
        nWordPos++;
    }

    // 返回整理后的字符串
    return szBuffer;
}

int main(int argc, char* argv[])
{
    char szTest1[] = "OK? I am a student";
    char szTest2[] = "No! Student is person also!";
    char* szOpposite;

    // 整理字符串
    szOpposite = OppositeStr(szTest1, true);
    if (NULL == szOpposite)
        printf("Operator error!\n");
    else
        printf("The Opposite String is:\n%s\n", szOpposite);

    szOpposite = OppositeStr(szTest2, true);
    if (NULL == szOpposite)
        printf("Operator error!\n");
    else
        printf("The Opposite String is:\n%s\n", szOpposite);

    return 0;
}

世界很简单 是非很复杂
有些东西是你的 但是你质疑的多了 可能就不是你的了
2010-01-04 19:02
jokercodes
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2009-10-5
收藏
得分:0 
谢谢你的回答
2010-01-05 16:59
快速回复:很难的倒叙输出!!!!
数据加载中...
 
   



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

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