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

    xiaoxiao2021-12-14  60

    方法一:用两个指针,一个指针指向字符串结尾,一个指针指向字符串首部,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; }

    转载请注明原文地址: https://ju.6miu.com/read-970726.html

    最新回复(0)