C语言中如何实现字符串的反转?

2025-04-15 12:07:34
推荐回答(1个)
回答1:

#include
#include

string_change(char * p)
{
        int i,len;
        char temp;
        len = strlen(p);

        //printf("%d \n", len);
        //test printf("%d\n",len);

        for(i=0; i<(len/2); i++)
        {
                temp = p[i];
                p[i] = p[len-1-i];
                p[len-1-i] = temp; 
        }
}

int main(void)
{
        char a[20] = "1234567890";

        printf("%s\n",a);
        string_change(a);
        printf("%s\n",a);

        return 0;
}

 两个明显的误解:

  1. char* a="12***"; 这样定义是错误的。这样 a指向字符串常量的指针。而字符串常量是不能改变的。所以停止运行。

  2. c中数组是从0开始编号的。所以字符串最后一个字符是a[len-1];