用不同的方法实现字符串的逆序输出(C语言实现)
来源:互联网 发布:周琦数据历史数据 编辑:程序博客网 时间:2024/06/05 15:44
用不同的方法实现字符串的逆序输出(C语言实现)
今天去面试遇到面试题如下:
请将字符串"123456",逆序输出?
当时我使用是指针,我后来想到的其他实现方法。
实现如下:
#include <stdio.h>#include <string.h>///////////////////////////用指针实现字符串的逆序 char* reverse_pointer(char* str){char* head = str;char* end = str;char* temp = str;//保存str的地址 char ch;printf("head:%p\n", head);//将end指针指向string的结束符'\0' while( *end != '\0' ){end++;}printf("end:%p\n", end);//将end指针指向string结束符的前一个位置 end = end -1;printf("end2:%p\n", end);//当head指针的地址 < end指针的地址时//就交换head,end所指向的内容 while(head < end){ch = *end;*end = *head;*head = ch;head++;//head指针走向下一个 end--; //end指针走向上一个 }return temp;}///////////////////////////字符串逆序输出的递归算法//方法1void reverse_print(char *str){if (*str == '\0') return;reverse_print(str+1);printf("%c", *str);}//方法2void reverse_print2(char *str){for(int i=strlen(str); i>0; i--){printf("%c", *(str+i-1) );}}/////////////////////////// 数组方法实现// 函数参数要为数组 void reverse_array(char str[]){char ch;int len = strlen(str);// (len/2)找到字符串的中点,交换以中点对称的数组元素 for(int i=0; i<(len/2); i++){ch = str[i];str[i] = str[len-1-i];//字符串首位对应位置交换str[len-1-i] = ch; }}/////////////////////// int main(){char str[] = "123456";printf("reverse before:%s\n", str);//reverse_print(str);//reverse_print2(str);//reverse_array(str);//char *str2 = reverse_pointer(str);//printf("reverse after:%s\n", str2);return 0;}
以上方法仅供参考!
文明看帖,谢谢勿喷!
有更好的方法欢迎交流!
0 0
- 用不同的方法实现字符串的逆序输出(C语言实现)
- c语言实现字符串的逆序输出
- C语言实现对字符串的逆序输出
- 用c语言实现单链表的逆序输出
- 字符串的逆序递归实现 C语言实现
- C语言简单递归实现字符串逆序输出
- C语言实现字符串拷贝并逆序的问题
- 递归算法实现字符串的逆序输出
- c语言实现字符串逆序
- 用C#实现字符串的逆序输出 急
- (c/c++)实现逆序输出整数的几种方法
- 4种方法实现字符串逆序输出
- C语言字符串相关方法的实现
- 【C语言】用递归实现字符串逆序的曲折之路
- 实现字符串逆序输出
- 实现字符串的逆序
- python实现对指定输入的字符串逆序输出的六种方法大全
- C语言实现单链表逆序与逆序输出实例
- Java多媒体播放器(二)
- 哦,是约数定理
- 笔记本开启wifi
- XML相关知识点
- Linux kernel中网络设备的管理
- 用不同的方法实现字符串的逆序输出(C语言实现)
- 【浏览器】window.pageXOffset/pageYOffset (相对于)页面偏移(CSS像素)
- spring中的web.xml部分属性详细
- 程序员如何快速准备面试中的算法
- 大数加乘处理(利用数组)
- 【索引】CodeForces Round #230 (Div. 2)
- Linux信号、信号处理和信号处理函数
- Effctive c++ 心得
- 使用cxf 开发webservice