字符串翻转-不能使用系统函数

思想

  1. 定义头尾两个指针
  2. 交换头尾指针的数据
//字符串翻转
char *strrev(char *str){
    //判断字符是否为null或是空字符串
    if(str == NULL || str == ‘\0‘) {
        return str;
    }
    //定义char数组指针
    char *start = str;
    char *end = str;
    while(*end != ‘\0‘){    //指向最后一个结点
        end ++;
    }
    //交换头和尾的值
    char temp;
    --end;  //去除\0的位置
    while(start < end){
        temp =  *start;
        *start = *end;
        *end = temp;
        start ++;
        end --;
    }
    return str;
} 

int main(void){
    char str[] = "wangming";
    cout << strrev(str);
    return 0;
}

结果

如果可以利用系统的函数,可以定义一个栈, 让字符数组入栈, 然后在出栈也可以达到这个效果, 但是题目却不让使用 系统内提供的资源, 只能利用原始方法了.

如果 时间复杂度还能再低的, 请留言.

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-10 07:27:13

字符串翻转-不能使用系统函数的相关文章

函数,字符串函数,日期函数,数学函数,系统函数,聚合函数

------------------字符串函数------------------------charindex(要查找的字符串,被查找的字符串,开始查找的位置):返回要查找的字符串在被查找的字符串中的位置select charindex('sve','hello sve hi sve',1)--结果为7select charindex('sve','hello sve hi sve',8)--结果为14--len(字符串):返回字符串的长度select len('hello sve')--lo

描述了say_hello函数的具体内容,调用zend_printf系统函数在php中打印字符串

下载一个php的源代码包,这里使用的是php 4.0.5版,解压后会看到php的根目录下会有README.EXT_SKEL这样一个文件,打开详细阅读了一下,发现了一个非常好用的工具,这个工具可以帮你构建一个空的php扩展,然后你向里面添加相应的代码就可以完成你自己的功能扩展了.下面我们就来介绍如何使用这个工具. 首先转移你的目录到php的目录下的ext目录,如果你只需要一个基本的扩展框架的话,执行下面的命令: ./ext_skel --extname=module_name module_nam

SQL Server系统函数:字符串函数

原文:SQL Server系统函数:字符串函数 1.字符转化为ASCII,把ASCII转化为字符,注意返回的值是十进制数 select ASCII('A'),ASCII('B'),ASCII('a'),ASCII('b'),ASCII('?') select CHAR(65),CHAR(66),CHAR(97),CHAR(98),CHAR(63) 2.unicode字符转化为整数,把整数转化为unicode字符 select UNICODE('A'),UNICODE('B'),UNICODE('

Delphi常用系统函数总结

字符串处理函数 Unit System 函数原型 function Concat(s1 [, s2,..., sn]: string): string; 说明 与 S := S1 + S2 + S3 ...; 相同. 将字符串相加. 函数原型 function Copy(S: string; Index, Count: Integer): string;说明 S : 字符串. Indexd : 从第几位开始拷贝. Count : 总共要拷贝几位. 从母字符串拷贝至另一个字符串. 函数原型 pro

php 常用的系统函数

php 常用的系统函数 本文介绍了php 常用的系统函数,具有很好的参考价值,下面跟着 大宝儿 一起来看下吧 字符串函数        strlen():获取字符串长度,字节长度 substr():字符串截取,获取字符串(按照字节进行截取) strchr():与substr相似,从指定位置截取一直到最后 strrchr(获取文件后缀名):与strchr一样,只是从右边开始查找字符 strtolower():所有的字符都小写(针对英文字母) strtoupper():所有的字符都大写 strrev

MySQL中的内置系统函数

MySQL中的内置系统函数 用在SELECCT语句, 能及子句 where order by having 中 UPDATE DELETE, 函数中可以将字段名作为变量来用,变量的值就是这个列对应的每一行记录 一.字符串函数 php中用的函数,MySQl中大部也提供 1. CONCAT(S1,S2....SN): 把传入的参数连接成一个字符串 2. INSERT(str, x, y, insert): 将字符串X位置开始,y个字符串长度替换为字符串insert 3. LOWER(str) UPP

SQL sever 部分常量函数及系统函数使用

(1)数学函数的使用 1.求绝对值 ABS()函数 SELECT ABS('2') 2.求平方根  SQRT()函数 SELECT SQRT('256') 3.求平方  SQUARE()函数 SELECT SQUARE('6') (2)字符串函数 1.返回字符串的第一个字符的ASCII码值函数 ASCII() SELECT ASCII('Abcd') 2.字符串转化大.小写函数 LOWER()把字符串转化小写 UPPER()把字符串转化大写 SELECT LOWER('MACHINE') SEL

Linux网络编程2&mdash;&mdash;系统函数

socket信息数据结构 #include <netinet/in.h> struct sockaddr { unsigned short sa_family; /*地址族*/ char sa_data[14]; /*14字节的协议地址,包含该socket的IP地址和端口号.*/ }; struct sockaddr_in { short int sa_family; /*地址族*/ unsigned short int sin_port; /*端口号*/ struct in_addr sin

Oracle 常用系统函数

2  字符函数 1.    replace( 字符串1,字符串2,字符串3) replace( char, search_string, replace_string) 功能:在"字符串1"中搜索"字符串2",并将其替换为"字符串3". 例如下面的命令是将所有员工名字中出现的"A"替换为"中国". SQL>selectreplace(ename, 'A', '中国') from scott.emp;