首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

每日一道C\C++笔试题IV-翻转字符串

2013-02-24 
每天一道C\C++笔试题IV---翻转字符串这也是笔试中一道经典的C语言题:给定一个字符串,将其翻转。如abc c

每天一道C\C++笔试题IV---翻转字符串

这也是笔试中一道经典的C语言题:

给定一个字符串,将其翻转。如abc ==> cba

拿到此题时,我是想都没想,直接说,再用一个字符串tmp来缓存一下此串,然后一个for循环赋值搞定。

思路有了,代码就有了。

D:\workspace\C\revert_string>gcc -o revert revert_string.c -std=c99D:\workspace\C\revert_string>revertplease input less than 20 char:abcyour input string is abclength is 3tmp is astring[0] is cstring[2] is aafter revert:cbaD:\workspace\C\revert_string>revertplease input less than 20 char:abcdyour input string is abcdlength is 4tmp is astring[0] is dstring[3] is atmp is bstring[1] is cstring[2] is bafter revert:dcba

这样的算法,相比之前要提高甚多效率。只要开动脑筋,世界会更加优雅。

1楼lvjing_CSDN昨天 13:17
void reverse(char *str)n{n #undef SWAPn #define SWAP(x,y) (*x) = (*x)^(*y);(*y) = (*x)^(*y);(*x)= (*x)^(*y)n char *head,*tail,*stop;n head = tail =str;n while(*tail != '\0')n ++tail;n stop = head+(tail-head)/2;n while(head != stop)n {n --tail;n SWAP(head,tail);n ++head;n }n #undef SWAPn}

热点排行