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

来源:互联网 发布:Apache cxf wsdl 编辑:程序博客网 时间:2024/05/19 15:24

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

#include <stdio.h>#include <string.h>#define MAX_SIZE 512void 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 512char* 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;}


0 0
原创粉丝点击