
/**
*
* file name:ReverseWorld.c
* author :eon4051@163.com
* date :2024/05/11
* brief :单词反转字符串函数设计
* note :None
*
* CopyRight (c) 2024 eon4051@163.com All Right Reseverd
*
*/
#include <stdio.h>
#include <string.h>
/**
*
* func name :reverseStr
* brief :将从start到end(包含端点)的字符串翻转
* func parameter:
* @str:传入的字符串
* @start:起始位置
* @end:终止位置
* return :None
* note :None
* func author :eon4051@163.com
* date :2024/05/11
* version :V1.0
*/
void reverseStr(char *str, int start, int end)
{
while (start < end) {
char temp = str[start];
str[start] = str[end];
str[end] = temp;
start++;
end--;
}
}
/**
*
* func name :reverseWords
* brief :以单词为单位翻转字符串
* func parameter:
* @str:传入的字符串
* return :None
* note :None
* func author :eon4051@163.com
* date :2024/05/11
* version :V1.0
*/
void reverseWords(char *str)
{
// 获取句子的长度
int len = strlen(str);
// 反转整个句子
reverseStr(str, 0, len - 1);
// 反转每个单词
int start = 0;
for (int i = 0; i <= len; i++)
{
if (str[i] == ' ' || str[i] == '\0') // 当遇到空格或者字符串结尾时,反转当前单词
{
reverseStr(str, start, i - 1);
// 更新下一个单词的起始位置
start = i + 1;
}
}
}
/**
*
* func name :main
* brief :以单词为单位翻转字符串
* func parameter:
* return :None
* note :None
* func author :eon4051@163.com
* date :2024/05/11
* version :V1.0
*/
int main()
{
char str[] = "Here is www.fishksy.com.cn";
reverseWords(str);
printf("%s\n", str); // 输出反转后的句子
return 0;
}