字符串反转实验

来源:互联网 发布:傲盾网络加速器免费版 编辑:程序博客网 时间:2024/06/07 07:13

字符串反转1.1,首尾交换,逐个处理。

#include "stdafx.h"void fanzhuanZFC(char* pStr){if(!pStr)return;char * pSave = pStr;int len = 0;while(*pStr++){len++;}for(int i = 0; i < len/2; i++){char tmp = pSave[i];pSave[i] = pSave[len-1-i];pSave[len-1-i] = tmp;}}int _tmain(int argc, _TCHAR* argv[]){char tst[] = "ajfka;lfkl";printf("%s\n",tst);fanzhuanZFC(tst);printf("%s\n",tst);getchar();return 0;}

1.2 有人喜欢全使用指针,而不是数组

void fanzhuanZFC(char* pStr){if(!pStr)return;char * pBegin = pStr;char * pEnd = pStr;while(*pEnd++){//do nothing}pEnd -= 2;while(pBegin < pEnd){char tmp = *pBegin;*pBegin++ = *pEnd;*pEnd-- = tmp;}}

1.3 如果可以使用库函数,代码就更简单了,包含string.h,

#include <string.h>void fanzhuanZFC(char* pStr){if(!pStr)return;_strrev(pStr);//记得前面的下划线,strrev已淘汰了}

1.4 若使用stl库,也可以实现

#include <string>#include <algorithm>void fanzhuanZFC(char* pStr){if(!pStr)return; std::string str = pStr; reverse(str.begin(), str.end());  strcpy(pStr,str.c_str());}



0 0
原创粉丝点击