/*************************************************** 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;
}```c