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

编程实现对输入的字符串进行逆序

2016-12-03 19:14 176 查看
方法一:用两个指针,一个指针指向字符串结尾,一个指针指向字符串首部,len代表字符串的长度,用折半的方式将头部指针和尾部指针的内容进行交换,每交换一次字符后头部指针自加,尾部指针自减。

#include <stdio.h>
#include <string.h>

#define MAX_SIZE 512

void reverse(char *str, int len)
{
int i;

char temp;
char *p = str + len - 1;
char *s = str;

for(i = 0; i < len / 2; i++)
{
temp = *s;
*s = *p;
*p = temp;
s++;
p--;
}

return;
}

int main()
{
char src[MAX_SIZE];

int len = 0;

printf("enter:");
gets(src);

len = strlen(src);

reverse(src,len);
printf("%s\n",src);

return 0;
}


方法2:在逆序函数中使用一个静态数组,将传入的字符串从尾部遍历到首部并依序存于该静态数组中,最后返回该数组的首地址。
#include <stdio.h>
#include <string.h>

#define MAX_SIZE 512

char* reverse(char *str, int len)
{

int i;

static char src[MAX_SIZE] = {0};

char *p = str;

for(i = len - 1; i >= 0; i--)
{
src[len - i - 1] = *(p + i);
}

return src;
}

int main()
{
char src[MAX_SIZE];
char *result;
int len = 0;

printf("enter:");
gets(src);

len = strlen(src);

result = reverse(src,len);
printf("%s\n",result);

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