(c语言)倒置字符串——词汇顺序不变

#include
#include    //倒置字符串
//例:I like beijing.
//转化后:beijing. like I

void DaoXu(char* left,char* right)
{
    while (left <= right)
    {
        char t = *left;
        *left = *right;
        *right = t;
        left++;
        right--;
    }
}
void CiDaoXu(char* arr)
{
    char* start=arr;
    char* end;
    while (*start)
    {
        end = start;
        while (*end != ' ' && *end != '\0')    //分割词汇
        {
            end++;
        }
        //循环结束时,end在空格处
        DaoXu(start, end-1);  //故词汇倒序时,end要-1
        if (*end != '\0')  //如果end指向的为空格,则end++使其指向下一个词汇的开头
        {
            end++;
        }
        start=end;   //将指向开头的end赋值给start
    }
}
int main()
{
    //赋值
    char arr[101];
    gets(arr);
    int l = strlen(arr);    //字符串的长度
    int right = strlen(arr) - 1;
    //整体倒序
    DaoXu(arr,&arr[right]);
    printf("整体倒序:%s",arr);
    printf("\n");
    //词汇反倒序
    CiDaoXu(arr);
    printf("词汇反倒序:%s",arr);
    return 0;
}

你可能感兴趣的:(c语言,java,算法)