设为首页 加入收藏

TOP

C++中字符串两次翻转
2013-11-20 14:23:30 来源: 作者: 【 】 浏览:98
Tags:字符串 翻转

      废话不多说,我们直接上代码:

  // test.cpp : 定义控制台应用程序的入口点。

  //

  #include "stdafx.h"

  #include "iostream"

  using namespace std;

  void reverse(char * ps, char * pn);

  char * strprocess(char * str);

  char * strCopy(char * dst, const char * src);

  int main(int argc, char * argv[])

  {

  char str[] = "could you tell me how to complete this problem";

  char * p = strprocess(str);

  cout<

  char * p2 = (char *)malloc(strlen(str));

  p2 = strCopy(p2, str);

  cout<

  system("pause");

  return 0;

  }

  char * strprocess(char * str)

  {

  if(str == NULL || *str == '\0')

  return NULL;

  char * ps = str;

  char * pn = str;

  while(*pn != '\0') pn++;

  pn--;

  reverse(ps, pn);

  ps = str;

  while(*ps != '\0')

  {

  pn = ps;

  while(*pn != '\0' && *pn != ' ' ) pn++;

  reverse(ps, pn - 1);

  if(*pn == '\0') break;

  ps = pn + 1;

  }

  return str;

  }

  void reverse(char * ps, char * pn)

  {

  while(ps <= pn)

  {

  char temp = *ps;

  *ps = *pn;

  *pn = temp;

  ps++;

  pn--;

  }

  }

  // copy str

  char * strCopy(char * dst, const char * src)

  {

  if(dst == NULL || src == NULL) return NULL;

  char * strDest = dst;

  while((*dst++ = *src++)!='\0');

  return strDest;

  }

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C++中获取所有可能的组合 下一篇编译原理递归下降分析法

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C++ 语言社区-CSDN社 (2025-12-24 17:48:24)
·CSDN问答专区社区-CS (2025-12-24 17:48:22)
·C++中`a = b = c`与` (2025-12-24 17:48:19)
·C语言结构体怎么直接 (2025-12-24 17:19:44)
·为什么指针作为c语言 (2025-12-24 17:19:41)