嵌入式软件工程师面试题--字符串的反转
来源:互联网 发布:unity3d有手机版吗 编辑:程序博客网 时间:2024/05/02 01:21
面试笔试题总会遇到字符串反转的问题,网上的实现方式也很多。下面的实现是用C语言实现的。
自己手敲,亲自测试通过;做下记录。直接上代码:
#include <stdio.h> #include <string.h>#define SIZE 1024char *rev_str(char *str, int len);int main(int argc, char * argv[]){ char myStr[SIZE]; int len = 0; printf("Please input a string!\n");// gets(myStr); scanf("%s", myStr); len = strlen(myStr); rev_str(myStr, len); printf("After the inverted string is %s!\n", myStr); return 0;}char *rev_str(char *str, int len){ char *start = str; char *end = str + len -1; char ch = '\0'; if(NULL == str) { printf("The param is invalid\n"); return NULL; } while(start < end) { ch = *start; *start++ = *end; *end-- = ch; } return str;}
上面是一种方法,下面是灵一种实现方式:(希望大家亲手敲一下)
#include <stdio.h>#include <string.h> #define SIZE 1024char * myStrRev(char * const dest, const char * const src);int main(int argc, char * argv[]){ char mysrc[SIZE]; char mydest[SIZE]; printf("请输入一个字符串:\n"); scanf("%s", mysrc); myStrRev(mydest, mysrc); printf("After the inverted string is %s\n", mydest); return 0;}char * myStrRev(char * const dest, const char * const src){ int i = 0; int srclen = strlen(src); char * addr = dest; if(NULL == dest || NULL == src) { printf("The parame is invalid!!\n"); return NULL; } for(i = 0; i < srclen; i++) { *(dest + i) = *(src + srclen -i -1); } dest[srclen] = '\0'; return addr;}
有什么不对的地方和更好的方法,请留言。谢谢。
0 0
- 嵌入式软件工程师面试题--字符串的反转
- 嵌入式软件工程师面试题
- 嵌入式软件工程师面试题
- 嵌入式软件工程师面试题
- 嵌入式软件工程师面试题
- 嵌入式软件工程师面试题
- 嵌入式软件工程师面试题
- 嵌入式软件工程师面试题
- 嵌入式软件工程师面试题
- 嵌入式软件工程师面试题
- 嵌入式软件工程师面试题
- 嵌入式软件工程师 面试题
- 嵌入式软件工程师面试题
- 嵌入式软件工程师面试题
- 嵌入式软件工程师面试题
- 嵌入式软件工程师面试题
- 嵌入式软件工程师面试题1
- 嵌入式软件工程师经典面试题
- 软件工程概论 复习笔记
- 泛型类的自定义
- js获取窗口的位置
- 创建iOS动态库/Framework
- 工作周报044
- 嵌入式软件工程师面试题--字符串的反转
- [iOS] performSelector:withObject:afterDelay:调用没有作用的问题及解决方法
- termios结构体
- oracle11g密码过期问题
- 【PAT 乙级(Basic Level)】福尔摩斯的约会
- 无需客户端PLSQL连接Oracle的方法
- 编写一个字符驱动
- 记Flume-NG一些注意事项(不定时更新,欢迎提供信息)
- Android进步之路五:startActivityForResult详解