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

 更新时间:2013年05月29日 08:54:22   作者:  
本篇文章是对用C++实现,将一句话里的单词进行倒置的方法进行了详细的分析介绍,需要的朋友参考下
用C++语言实现,将一句话中的单词进行倒置(单词之间倒转,单词本身不倒置),标点符号不导致。比如一句话“I come from tianjin. “,倒置后变成“tianjin. from come I ”。
C常见的库函数有:
复制代码 代码如下:

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)      连接字符串  

没有太合适题意的库函数,因此想办法不用库函数,自己进行倒置。下面的是自己的实现,不足之处,还望指正!!!
复制代码 代码如下:

#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;
}

相关文章

  • C语言strlen,strcpy,strcmp,strcat,strstr字符串操作函数实现

    C语言strlen,strcpy,strcmp,strcat,strstr字符串操作函数实现

    这篇文章主要介绍了C语言strlen,strcpy,strcmp,strcat,strstr字符串操作函数实现,,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-09-09
  • C++实现LeetCode(27.移除元素)

    C++实现LeetCode(27.移除元素)

    这篇文章主要介绍了C++实现LeetCode(27.移除元素),本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-07-07
  • C语言多种方法实现一个函数左旋字符串中K个字符

    C语言多种方法实现一个函数左旋字符串中K个字符

    这篇文章主要为大家介绍了C语言多种方法实现一个函数,可以左旋字符串中K个字符,文中附含详细的示例讲解,有需要的朋友可以借鉴参考下
    2021-10-10
  • C++位操作的常见用法小结

    C++位操作的常见用法小结

    这篇文章主要介绍了C++位操作的常见用法,包括了判断奇偶、交换两个数、正负转换、求绝对值等,需要的朋友可以参考下
    2014-09-09
  • C语言实现的猜拳游戏代码分享

    C语言实现的猜拳游戏代码分享

    本文给大家分享的是一个C语言实现的猜拳小游戏,由于本程序简单易操作,交互性好,对用户没什么特别要求。这里推荐给大家
    2016-02-02
  • Linux下使用C/C++进行UDP网络编程详解

    Linux下使用C/C++进行UDP网络编程详解

    UDP 是User Datagram Protocol 的简称,中文名是用户数据报协议,是一种无连接、不可靠的协议,本文主要介绍了如何在Linux下使用C/C++进行UDP网络编程,有需要的可以了解下
    2024-10-10
  • C/C++函数指针深入探究

    C/C++函数指针深入探究

    函数指针是一个指针变量,它可以存储函数的地址,然后使用函数指针,下面这篇文章主要给大家介绍了关于C语言进阶教程之函数指针的相关资料,需要的朋友可以参考下
    2022-08-08
  • 详解C语言 三大循环 四大跳转 和判断语句

    详解C语言 三大循环 四大跳转 和判断语句

    这篇文章主要介绍了详解C语言 三大循环 四大跳转 和判断语句的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-07-07
  • Qt扫盲篇之QRegularExpression正则匹配总结

    Qt扫盲篇之QRegularExpression正则匹配总结

    QRegularExpression是Qt5.0引进的,修复了很多bug,提高了效率,使用时建议使用QRegularExpression,下面这篇文章主要给大家介绍了关于Qt扫盲篇之QRegularExpression正则匹配的相关资料,需要的朋友可以参考下
    2023-03-03
  • C/C++语言宏定义使用实例详解

    C/C++语言宏定义使用实例详解

    这篇文章主要介绍了 C/C++语言宏定义使用实例详解的相关资料,需要的朋友可以参考下
    2017-06-06

最新评论