📅  最后修改于: 2023-12-03 15:00:13.824000             🧑  作者: Mango
strrev()函数是C语言标准库中的字符串函数之一,用于将一个字符串反转。函数原型如下:
char *strrev(char *str);
函数的参数为一个字符数组指针,函数将会改变该数组,将其内部原有的字符顺序进行反转,并返回反转后的字符指针。
strrev()函数的实现是非常简单的,可以通过倒序遍历字符数组,并将其前后位置的字符进行交换来实现字符数组的反转。其具体代码实现如下:
char* strrev(char* str)
{
if (!str) {
return NULL;
}
int len = strlen(str);
char temp;
for (int i = 0, j = len - 1; i < j; i++, j--) {
temp = str[i];
str[i] = str[j];
str[j] = temp;
}
return str;
}
#include <stdio.h>
#include <string.h>
char* strrev(char* str);
int main()
{
char str1[] = "Hello, world!";
char str2[] = "This is a test.";
printf("%s\n", str1);
printf("%s\n", strrev(str1));
printf("%s\n", str2);
printf("%s\n", strrev(str2));
return 0;
}
运行结果如下:
Hello, world!
!dlrow ,olleH
This is a test.
.tset a si sihT
strrev()函数虽然实现简单,但是在实际开发中仍然非常常见。在需求场景中将字符串反转常常可以简化代码,提高程序的效率。然而和其它字符串函数一样,开发者在使用该函数时需要注意数组的边界情况,以避免出现难以调试的内存访问错误。