将字符串中的单词进行倒序

       阅读(394)  2017-10-24 20:08:34

// 将字符串中的单词进行倒序,如:hello,world 倒序后:world,hello // 思路:先将整篇文章进行倒序,然后将所有单词进行倒序 // 整篇文章倒序:dlrow,olleh // 所有单词倒序:world,hello

#include using namespace std;

void ReverseString(char * const str, const int count);

void ReverseAllWord(char *str);

int _tmain(int argc, char *argv[]) {

char str[] = "I can do it,because I think I can";

ReverseAllWord(str);

cout << str << endl;

getchar();
return 0;

}

void ReverseString(char * const str, const int count) {

if (str == NULL || count < 2)
{
    return;
}

char *start = str;
char *end = str + count - 1;
char tmp;

while (end > start)
{
    tmp = *end;
    *end = *start;
    *start = tmp;

    start++;
    end--;
}

}

void ReverseAllWord(char *str) {

if (str == NULL)
{
    return;
}

char *traverse = str;
char *word_start = NULL;
char *word_end = NULL;

ReverseString(str, (int)strlen(str));

while (*traverse)
{
    if (::isalpha(*traverse))
    {
        word_start = traverse;
        word_end = traverse;
        while (*word_end && ::isalpha(*word_end))
        {
            word_end++;
        }

        int num = (int)(word_end - word_start);
        ReverseString(word_start, num);

        traverse += (num-1);
    }
    traverse++;
}

}

文章评论

Keep it simple,stupid
文章数
283
总访问量
260072
今日访问
402
最近评论

ningto : 请到next.ningto.com里发表评论。
tujiaw : 抱歉csdn code服务关闭了,这个代码我也找不到了
于淞 : 你好,这个文章的源码能分享一下吗,songsong9181@163.com,谢谢了 上面的写错了
于淞 : 你好,这个文章的源码能分享一下吗,838106303@163.com,谢谢了 上面的链接不能用了
tujiaw : 多谢多谢
essaypinglun college-paper.org : 很好的博客,赞赞
Folly : 这个实现有点奇怪,Qt为什么没有统一的比对方法。
过多s : alert("hello, world!")
tujiaw : 还不错哦
回到顶部