//将参数字符串中的字符反向排列
//eg:hello world -> world hello
//将整个字符串进行逆置,然后将字符串中各个单词进行逆置
#include <stdio.h>
#include <string.h>
void reverse(char* left,char* right)
{
char tmp = 0;
while (left<right)
{
tmp = *left;
*left = *right;
*right = tmp;
left++;
right--;
}
}
int main()
{
char arr[100] = { 0 };
gets(arr); //How are you?
char* start = arr;
int len = strlen(arr);
char* end = arr + len - 1;
reverse(start, end); //先将整句话倒置 ?uoy era woh
char* str = arr;
int i = 0;
for (i = 0; i <= len; i++) //通过空格和最后的'\0'拆分单词,将每个单词倒置
{
if (*str == ' ' || *str == '\0')
{
reverse(start, str - 1);
start = str + 1;
}
str++;
}
printf("%s\n", arr);
return 0;
}
[C语言]给定一个字符串,逐个翻转字符串中的每个单词。
最新推荐文章于 2023-12-24 11:11:14 发布