实现字符串反转的函数

来源:互联网 发布:pic单片机控制板多少钱 编辑:程序博客网 时间:2024/05/16 08:56

给定字符串“Hello World”,反序输出“dlroW olleH”。
1、char * strReversed_1(char * dest, char * str)

char * strReversed_1(char * dest, char * str){    unsigned int i, j;    if (dest == NULL || str == NULL)    {        return NULL;    }    unsigned int len = strlen(str);    for (i = 0, j = 0; i < len; i++, j++)    {        dest[j] = str[len - i - 1];    }    dest[j] = '\0';    return dest;}

2、char * strReversed_2(char * str)

char * strReversed_2(char * str){    unsigned int i;    if (str == NULL)    {        return NULL;    }    unsigned int len = strlen(str);    char tem;    for (i = 0; i < len / 2; i++)    {        tem = str[i];        str[i] = str[len - i - 1];        str[len - i - 1] = tem;    }    return str;}

3、char * strReversed_3(char * str)

char * strReversed_3(char * str){    unsigned int i;    if (str == NULL)    {        return NULL;    }    unsigned int len = strlen(str);    char * temp = str + len - 1;    char tem;    for (i = 0; i < len / 2; i++)    {        tem = *str;        *str = *temp;        *temp = tem;        *str++;        *temp--;    }    return str - len / 2;}

验证程序:

#include <stdio.h>#include <string.h>#define MAX_LEN 64int main(){    char strScr[MAX_LEN] = "Hello World";    char strDest[MAX_LEN];    printf("%s\n", strReversed_1(strDest, strScr));    printf("%s\n", strReversed_2(strDest));    printf("%s\n", strReversed_3(strDest));    return 0;} 

输出结果:
这里写图片描述

1 0
原创粉丝点击