当前位置:实例文章 » HTML/CSS实例» [文章]C语言每日一题——倒转字符

C语言每日一题——倒转字符

发布人:shili8 发布时间:2025-03-10 11:23 阅读次数:0

**C语言每日一题——倒转字符**

在编程中,常见的一个需求是将一个字符串的字符顺序进行反转。例如,将 "hello" 变成 "olleh"。这种需求在很多场景下都有应用,比如说,需要生成一个随机的密码或者是需要对输入的文本进行处理等。

**问题描述**

给定一个字符串 `str`,要求将其字符顺序反转,并返回结果。

**示例代码**

c#include <stdio.h>
#include <string.h>

// 将 str 的字符顺序反转,并返回结果char* reverseStr(char* str) {
 int len = strlen(str);
 // 创建一个新字符串,用于存放反转后的结果 char* reversed = (char*)malloc((len +1) * sizeof(char));
 // 将原字符串的最后一个字符复制到新字符串的第一个位置 for (int i = len -1; i >=0; --i) {
 reversed[len - i] = str[i];
 }
 // 添加结束符 '0'
 reversed[len] = '0';
 return reversed;
}

// 测试函数void testReverseStr() {
 char* str = "hello";
 printf("原字符串:%s
", str);
 // 反转字符串 char* reversed = reverseStr(str);
 printf("反转后字符串:%s
", reversed);
 free(reversed); //释放内存}

int main() {
 testReverseStr();
 return0;
}


**代码注释**

1. **函数定义**: `reverseStr` 函数的作用是将输入的字符串 `str` 的字符顺序反转,并返回结果。
2. **长度计算**: 使用 `strlen` 函数获取原字符串的长度,用于创建新字符串的大小。
3. **内存分配**: 使用 `malloc` 分配足够大小的内存来存放反转后的新字符串。
4. **反转字符**: 遍历原字符串,从最后一个字符开始复制到新字符串中,直到第一个字符为止。
5. **结束符添加**: 在新字符串的末尾添加结束符 `0`。
6. **测试函数**: `testReverseStr` 函数用于测试 `reverseStr` 函数的正确性。

**注意事项**

* **内存释放**: 在使用 `malloc` 分配的内存后,必须通过 `free` 函数释放该内存,以避免内存泄漏。
* **函数返回值**: `reverseStr` 函数返回一个指向新字符串的指针。

其他信息

其他资源

Top