c语言,将字符串倒放将字符串倒放

img

img


c语言,将字符串倒放将字符串倒放
怎么去除掉b字符串的第一个空格呀

i应该等于strlen(a)-1

img


#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<assert.h>
void Reversed(char* left, char* right)
{
    assert(left);
    assert(right);
 
    while (left < right)
    {
        char temp = *left;
        *left = *right;
        *right = temp;
        left++;
        right--;
    }
}
 
int main()
{
    printf("描述\n");
    printf("将一句话的单词进行倒置,标点不倒置。比如 I like beijing. 经过函数后变为:beijing. like I\n");
    printf("输入描述:每个测试输入包含1个测试用例: I like beijing. 输入用例长度不超过100\n");
    printf("输出描述:依次输出倒置之后的字符串,以空格分割\n");
    printf("示例1\n");
    printf("I like beijing.\n");
    printf("输出\n");
    printf("beijing. like I\n");
    printf("==================================代码执行===================================\n");
    printf("\n");
 
    char arr[101] = { 0 };
    int i = 0;
    // 接收输入的字符串  -》 gets();
    gets(arr);   // 接收字符串
    int lenght = strlen(arr);    // 求字符串字符长度
    // 字符串进行逆序 -> 将整个字符串倒序
    Reversed(arr, arr + lenght - 1); 
    //printf("%s",arr);
    
    char* start = arr;
 
    while (*start != '\0')
    {
        char* end = start;
        while (*end != ' ' && *end != '\0')
        {
            end++;
        }
        Reversed(start, end - 1);
        end++;
        start = end;
    }
 
    // 输出字符串
    printf("%s", arr);
 
    printf("\n");
    printf("==================================代码执行==================================\n");
    return 0;
}