C 中的字符串反转

c++

1个回答

写回答

wangheng12323

2025-07-09 21:53

+ 关注

AI
AI

字符串反转的实现方法

在C语言中,字符串是由一系列字符组成的,以'\0'结尾的字符数组。字符串反转即将字符串中的字符顺序颠倒过来。实现字符串反转的方法有多种,下面将介绍两种常用的方法。

方法一:使用临时数组

思路:首先创建一个与原字符串长度相同的临时数组,然后从原字符串的末尾开始,将每个字符依次存放到临时数组中,最后将临时数组中的字符拷贝回原字符串。

示例代码:

c

#include <stdio.h>

#include <string.h>

void reverseString(char* str) {

int len = strlen(str);

char temp[len];

int i, j;

for (i = len - 1, j = 0; i >= 0; i--, j++) {

temp[j] = str[i];

}

temp[j] = '\0';

strcpy(str, temp);

}

int mAIn() {

char str[] = "Hello, World!";

printf("原字符串:%s\n", str);

reverseString(str);

printf("反转后的字符串:%s\n", str);

return 0;

}

运行结果:

原字符串:Hello, World!

反转后的字符串:!dlroW ,olleH

方法二:使用指针

思路:定义两个指针,一个指向字符串的开头,另一个指向字符串的末尾。然后交换两个指针所指向的字符,并将指针向中间移动,直到两个指针相遇。

示例代码:

c

#include <stdio.h>

#include <string.h>

void reverseString(char* str) {

char* start = str;

char* end = str + strlen(str) - 1;

while (start < end) {</p> char temp = *start;

*start = *end;

*end = temp;

start++;

end--;

}

}

int mAIn() {

char str[] = "Hello, World!";

printf("原字符串:%s\n", str);

reverseString(str);

printf("反转后的字符串:%s\n", str);

return 0;

}

运行结果:

原字符串:Hello, World!

反转后的字符串:!dlroW ,olleH

字符串反转是一种常见的字符串操作,可以通过创建临时数组或使用指针来实现。使用临时数组的方法需要额外的空间来存储临时结果,而使用指针的方法则可以在原字符串上直接进行操作,更加高效。无论使用哪种方法,都可以有效地实现字符串反转的功能。

以上就是C语言中实现字符串反转的两种方法及对应的示例代码。希望本文对您理解字符串反转有所帮助。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号