单词反转字符串函数设计

image

/**
 *
 *   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;
}
posted @   藍桉未遇釋槐鳥  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示