给定一个句子 用c语言编程 使单词反转,用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
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语言编程 使单词反转,用C++实现,将一句话里的单词进行倒置的方法详解...相关推荐
- c语言字符串倒置,单词倒置,用C++实现,将一句话里的单词进行倒置的方法详解
用C++语言实现,将一句话中的单词进行倒置(单词之间倒转,单词本身不倒置),标点符号不导致.比如一句话"I come from tianjin. ",倒置后变成"tian ...
- 如何给定二叉树的2个遍历序列(前序中序,中序后序),确定二叉树(方法详解)
根据前序和中序遍历 给定二叉树 前序(根节点-左节点-右节点):A B D E H C F G 中序(左节点-根节点-右节点):D B E H A F C G 第一步:根据前序就可以判断遍历的第一个就 ...
- python核心编程:Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
这篇文章主要介绍了Python面向对象程序设计中类的定义.实例化.封装及私有变量/方法,结合具体实例形式较为详细的分析了Python面向对象程序设计中类的定义.实例化.封装.私有变量.私有方法等相关使 ...
- JavaScript:实现给定一个句子,返回出现次数最多的单词算法(附完整源码)
JavaScript:实现给定一个句子,返回出现次数最多的单词算法 // Given a sentence, return the most occurring word/*** @param {st ...
- 给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格。
给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格. 比如: (1) "hello xiao mi"-> &qu ...
- c语言 数字分离编程,C++ 整数拆分方法详解
一.问题背景 整数拆分,指把一个整数分解成若干个整数的和 如 3=2+1=1+1+1 共2种拆分 我们认为2+1与1+2为同一种拆分 二.定义 在整数n的拆分中,最大的拆分数为m,我们记它的方案数为 ...
- c语言memset函数作用,C语言memset函数使用方法详解
C语言memset函数使用方法详解 一.函数原形 void * memset(void*s,int ch,size_t n) 二.函数作用 将以s内存地址为首的连续n个字节的内容置成ch,一般 ...
- python语言的格式框架_django框架模板语言使用方法详解
本文实例讲述了django框架模板语言使用方法.分享给大家供大家参考,具体如下: 模板功能 作用:生成html界面内容,模版致力于界面如何显示,而不是程序逻辑.模板不仅仅是一个html文件,还包括了页 ...
- c语言 定时器作用,单片机定时器的作用及使用方法详解
单片机定时器的作用及使用方法详解 单片机定时器在单片机的功能是很重要的,它一般被用作定时功能,来做定时检测.定时响应和定时控制,并且可以产生毫秒宽的脉冲信号来驱动步进电机.计时和计数的最终功能是通过计 ...
最新文章
- 机器学习中如何处理缺失数据(NAN和Ifo)?
- 更改已经收货的采购订单价格
- Blazor WebAssembly 3.2.0 已在塔架就位 将发射新一代前端SPA框架
- [css] css的哪个属性可以把所有元素或其父元素的属性重置呢?
- python3环境运行python2代码_使用Anaconda实现Python2和Python3共存及相互转换
- 安装SQL SERVER 2000遇到的二个问题
- 最新计算机操作员高级试题,计算机操作员高级考试试题
- 内存管理的概念及作用
- Tuxedo 中间件学习心得 一
- 纳米磁珠+AI:让液体活检越走越近
- matlab仿真add,simulink中add和sum
- android dlna uri,android DLNA投屏
- 慢下来,等一等自己的灵魂
- 嵌入式Linux:安装Ubuntu系统环境
- int, long, long long类型的范围
- PMP第13章知识点回顾,练习题
- u盘格式化后数据能恢复吗?如何1个方法做到u盘格式化数据恢复?
- Note For Linux By Jes(20)-Linux 核心编译与管理
- 什么是端口?端口号分为几种类型?
- openzipkin/brave初步了解