单词反转字符串函数设计

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 @ 2024-05-11 01:04  藍桉未遇釋槐鳥  阅读(18)  评论(0)    收藏  举报