源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

用C++实现,将一句话里的单词进行倒置的方法详解

  • 时间:2022-03-23 17:19 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:用C++实现,将一句话里的单词进行倒置的方法详解
用C++语言实现,将一句话中的单词进行倒置(单词之间倒转,单词本身不倒置),标点符号不导致。比如一句话“I come from tianjin. “,倒置后变成“tianjin. from come I ”。 [b]C常见的库函数有: [/b]
[u]复制代码[/u] 代码如下:
int  strstr(const char* string,const char* substring)   用于返回主串中子串的位置以后的所有字符。比如主串是“123456789”,子串是“234”,则返回“23456789”。 char*   strcpy(char* DestStr,const char* SrcStr)   复制字符串函数   int    strcmp(const char* str1,const char* str2)    比较两个字符串   char*  strcat(char* destStr,const char* srcStr)      连接字符串  
没有太合适题意的库函数,因此想办法不用库函数,自己进行倒置。下面的是自己的实现,不足之处,还望指正!!!
[u]复制代码[/u] 代码如下:
#include "stdafx.h" #include <iostream> using namespace std; char *strReverse(char * sourcestr) {  int j = 0, i = 0,begin,end;  char *str = sourcestr;  char temp;  j = strlen(str) - 1;  cout << " string = " << str << endl;  //先将字符串进行全部倒转 变成 .nijnaiT morf emoc I  while (j > i)  {   temp = str[i];   str[i] = str[j];   str[j] = temp;   j --;   i ++;  }  cout << " string = " << str << endl;  //然后进行按单词部分反转,遇到空格,则判断出一个单词结束  i = 0;  while (str[i])  {   if (str[i] != ' ')   {    begin = i;    while (str[i] && str[i] != ' ')    {     end = i;     i++;    }    if (str[i] == '\0') //字符串的结束符    {     i--;    }   }   while (end > begin)   {    temp = str[begin];    str[begin] = str[end];    str[end] = temp;    end --;    begin ++;   }   i ++;  }  cout << " string = " << str << endl;  return str; } int _tmain(int argc, _TCHAR* argv[]) {  char str[] = "I come from Tianjin.";  strReverse(str);  return 0; }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部