算法题 用C或C++实现void reverse(char* str)函数,即反转一个null结尾的字符串

这篇博客介绍了如何使用C或C++编写void reverse(char* str)函数来反转null结尾的字符串。内容包括C语言中字符串的处理方式,字符串以''作为结束标志的原理,以及指针变量与字符数组的区别。同时,提供了具体的实现代码。

用C或C++实现void reverse(char* str)函数,即反转一个null结尾的字符串。

1、星号*靠近变量名和类型名的详解--摘自C和指针3.23



2、字符串中null结尾

       在C语言中,是将字符串作为字符数组来处理的。

       为了测定字符串的实际长度,C语言规定了一个“字符串结束标志”,以“\0”作为标志。系统对字符常量自动添加“\0”结尾。

       说明:\0代表ASCII码中为0的字符,在ASCII码中为0的字符不是一个可以显示的字符,而是一个空操作符,表示什么也不做。

3、在定义一个字符数组时,在编译时就为它分配了内存单元,它有确定的地址。而定义一个字符的指针变量时,给指针变量分配了内存单元,但是没有给指针变量指向的字符单元分配。在实际操作过程中,有可能指向了一个已存储数据的内存单元。所以在定义的时候需要注意。

实现代码:

#include <stdio.h>
#include <stdlib.h>
void reverse(char *str);
int main()
{
   char *str;
   char arr[]="helloworld";
   str=arr;
   reverse(str);
   printf("%s",str);
   return 0;
}
 void reverse(char *str)
 {
     char *end=str;
     char tmp;
     if(str)
     {
         while(*end)
         {
            ++end;
         }
            --end;
         while(str<end)
         {
             tmp=*str;
             *str=*end;
             *end=tmp;
             ++str;
             --end;
         }
     }
 }


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值