导图社区 C 语言实例 - 字符串翻转
这是一篇关于C 语言实例 - 字符串翻转的思维导图,主要内容包括:方法 3:递归法方法 2:使用双指针法,方法 1:使用临时数组。
这是一篇关于64、 C 语言实例 - 计算两个时间段的差值的思维导图,主要内容包括:方法2:手动计算时间差,方法1:使用struct tm和mktime函数。
这是一篇关于C 语言实例 - 复数相加的思维导图,主要内容包括:方法2:使用数组表示复数,方法1:使用结构体表示复数。
这是一篇关于C 语言实例 - 使用结构体(struct)的思维导图,主要内容包括:2. 使用typedef简化结构体类型名,1. 定义结构体。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
C 语言实例 - 字符串翻转
方法 1:使用临时数组
#include <stdio.h>
#include <string.h>
#include <stdlib.h> // 引入stdlib.h来使用malloc和free
void reverseString(char str[]) {
int n = strlen(str);
char* temp = (char*)malloc((n + 1) * sizeof(char)); // 动态分配内存
for (int i = 0; i < n; i++) {
temp[i] = str[n - i - 1];
}
temp[n] = '\0'; // 添加字符串结束符
strcpy(str, temp); // 将翻转后的字符串复制回原数组
free(temp); // 释放动态分配的内存
int main() {
char str[] = "Hello, World!";
printf("Original string: %s\n", str);
reverseString(str);
printf("Reversed string: %s\n", str);
return 0;
方法 2:使用双指针法
int start = 0;
int end = n - 1;
while (start < end) {
// 交换字符
char temp = str[start];
str[start] = str[end];
str[end] = temp;
// 移动指针
start++;
end--;
方法 3:递归法
void reverseString(char str[], int start, int end) {
if (start >= end) {
return;
// 递归调用
reverseString(str, start + 1, end - 1);
reverseString(str, 0, strlen(str) - 1);