📜  C语言中的strrev()函数(1)

📅  最后修改于: 2023-12-03 15:00:13.824000             🧑  作者: Mango

C语言中的strrev()函数

函数介绍

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()函数虽然实现简单,但是在实际开发中仍然非常常见。在需求场景中将字符串反转常常可以简化代码,提高程序的效率。然而和其它字符串函数一样,开发者在使用该函数时需要注意数组的边界情况,以避免出现难以调试的内存访问错误。