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

来源:互联网 发布:华傲数据技术有限公司 编辑:程序博客网 时间:2024/06/07 12:23

用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;         }     } }


0 0
原创粉丝点击