您的位置:首页 > 编程语言 > C语言/C++

实现字符串反转的函数

2017-03-05 17:18 246 查看
给定字符串“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 64

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


输出结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  strlen C-C++
相关文章推荐