程序员面试金典: 9.1数组与字符串 2写翻转字符串函数reverse(char* str)

来源:互联网 发布:ticwear能用的软件 编辑:程序博客网 时间:2024/05/01 00:32
#include <iostream>#include <stdio.h>using namespace std;const int MAXSIZE = 10000;/*问题:用C或C++实现void reverse(char* str)函数,即翻转一个null结尾的字符串分析:寻找到str最后的下标对应字符ch,然后从字符串末尾开始将最好的方法就是找到字符串的开始和末尾,将首尾交换后,然后向中间继续靠近输入:chaoma输出:amoahc关键:1 本质就是寻找到字符串首尾指针,对于首尾处字符交换,然后向中间逼近2 注意寻找到尾指针后,需要另last--,因为需使得尾指针在'\0'之前的一个字符*/void reverse(char* str){char* last = str;//如果还没有到达末尾while( (*last) != '\0' ){last++;}//最后一个字符串是结尾符,需要去除last--;char* begin = str;//只要前面小于后面,就交换while(begin < last){char temp = * begin;//先*后++*(begin++) = *last;*(last--) = temp;}}int main(int argc, char* argv[]){char str[MAXSIZE];while(cin >> str){reverse(str);cout << str << endl;}system("pause");return 0;}

0 0
原创粉丝点击