C/C++反序输出字符串总结
来源:互联网 发布:大数据时代的变革 编辑:程序博客网 时间:2024/06/05 11:47
2年前去T公司面试,面试官给了我一张纸一支笔,说写个程序吧,输入一个字符串然后反序输出。我问输入输出是用函数参数呢还是系统I/O,面试官说随你便,写完了说说各有什么优缺点吧。当时我大三,没有参加过ACM没有实验室经历除了课程设计也没写过什么程序,完全小白。当然至今也仍然是菜鸟一只,不堪回首啊。 方法一:据说有库函数strrev()啊 结果Linux下编译报错,说找不到strrev()这个函数,我勒个去,坑爹呢这是?VS2010编译通过正常运行。好吧,还是自己来写一个吧~ 方法二:首尾互换 终于都通过了啊。就用了个循环把字符串里的字符逐个首尾互换了。啥?性能?有啥问题?没看到每次进循环都要新建变量tmp吗?这这这。。。这也有影响?好吧,把这个声明放到循环外面。还能提升么?去掉字符互换操作!!直接从尾巴倒过来输出不就得了~ 方法三:从尾到头 这回用了I/O做输入,并且还能保留原来的字符串不变。嗯,不错不错,其实我们连字符串长度都不需要知道。再写一个~ 方法四:递归 估计一般没人会这么写吧。。。1234567891011121314
#include <stdio.h>#include <string.h>int main(int argc, char* argv[]){if (argc != 2){printf("Usage: %s string/n/n", argv[0]);return -1;}char* str = argv[1];strrev(str);printf("Reversed string: %s/n", str);return 0;}
123456789101112131415161718192021222324252627
#include <iostream>#include <cstring>using namespace std; char *reverse(char *str){int len = strlen(str);char *head = str;char *tail = str + len - 1;while (head < tail){char tmp = *head;*head++ = *tail;*tail-- = tmp;}return str;}int main(int argc, char* argv[]){if (argc != 2){cout << "Usage: " << argv[0] << " string" << endl;return -1;}cout << "Reversed string: " << reverse(argv[1]) << endl;return 0;}
123456789101112131415161718
#include <iostream>#include <string>using namespace std;int main(){string str;cout << "Input: ";cin >> str;unsigned int i = str.length();cout << "Reversed string: ";while(i != 0){cout << str[i-1];--i;}cout << endl;return 0;}
12345678910111213141516171819
#include <iostream>using namespace std;void reverse(char *str){if(*str)reverse(str+1);elsereturn;cout << *str;}int main(){char str[1024] = {NULL};cout << "Input: ";cin >> str;reverse(str);cout << endl;return 0;}
- C/C++反序输出字符串总结
- c/c++ 反序输出字符串
- c语言编程:字符串反序并输出
- C语言进阶之路------字符串的反序输出(输入字符串然后调用函数反序输出)
- C字符串逆序输出
- 【C语言】输出字符串
- C 自定义字符串输出
- C输出格式总结
- C输出格式总结
- C输出格式总结
- C输出格式总结
- 算法:反序输出字符串
- 字符串反序输出
- 输入字符串反序输出
- 字符串反序输出
- 输入字符串,反序输出
- 字符串反序输出
- C printf 格式输出字符串
- linux禁止用户远程登录的方法
- 嵌入式系统启动例程
- 职场
- IC卡读卡器测试程序
- Delphi 中 adoquery Parameter ‘A’ not found---------半转
- C/C++反序输出字符串总结
- poj 3470
- 提高Domino服务器性能方法
- SQL Server 通用分页方案
- Python写爬虫——抓取网页并解析HTML
- POJ 2559
- MOTO不相信眼泪!艰难回归!你,准备好了吗?
- 内网、外网IP地址
- __declspec(dllimport)