反轉一個字符串,保持字符串中的單詞不反轉

#if 1
#include <stdio.h>
#include <string.h>

void Reserver(char *start, char *end)
{
//    if(NULL == str)
//        return;
    while(start <= end)
    {
        char tmp = *start;
        *start = *end;
        *end = tmp;
        start++;
        end--;
    }
    return;
}

void Res(char *str, int len)
{
    //先反轉整個句子
    char *start;
    char *end = str + len -1;
    Reserver(start, end);
    //在反轉句子中的單詞    怎麼找到句子中的單詞呢
    end = start;
    while(*str != '\0')
    {
        if(*end == ' ' || *end == '\0')
        {
            Reserver(start, end-1);
            if(*end == '\0')
            {
                break;
            }
            end++;
            start = end;
        }
        else
            end++;
    }
}

int main()
{
    char str[] = "hello world ye";
    int len = strlen(str);
    Res(str, len);
    printf("%s\n", str);
    return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章