您现在的位置是:首页 > 正文

c++语言将字符串逆序输出,C++实现string类字符串单词的逆序输出

2024-01-30 21:39:14阅读 0

利用c++实现string类字符串单词的逆序输出,并改变源字符串的大小写。

#include

#include

#include

using namespace std;

string StringReverseWord(string &s)

{

int len = s.length();

if (len == 0)//空字符串

return s;

int n = 0;

while (s[n++] == ' ')

{

n++;

}

if (n == len)//全部都是空格时

{

s = "";

return s;

}

vector svec;

int first, last;

string s1;

int j = 0;

while (j != len)

{

while (s[j] == ' ')

{

j++;

}

first = j;

if (j != len)

{

j++;

}

while (j != len && s[j] != ' ')

{

j++;

}

last = j - 1;

if (j != len)

{

j++;

}

if (last >= first)

{

s1 = s.substr(first, last - first + 1);

svec.push_back(s1);

}

}

string s2 = "";

for (size_t k = svec.size() - 1; k != -1; --k)

{

s2 = s2 + " " + svec[k];

}

s = s2.substr(1, s2.length() - 1);

for (int t = 0; t != s.length();++t)

{

if (isupper(s[t]))

s[t] = tolower(s[t]);

else if (islower(s[t]))

{

s[t] = toupper(s[t]);

}

}

return s;

}

int main()

{

string s1 = "I am a student";

string s2 = " Semantic Co-occurrence Paterns";

string s3 = " He is a boy ";

string s4 = " hello ";

string s5 = "";

cout << s1 << endl;

cout << StringReverseWord(s1) << endl;

cout << endl;

cout << s2 << endl;

cout << StringReverseWord(s2) << endl;

cout << endl;

cout << s3 << endl;

cout << StringReverseWord(s3) << endl;

cout << endl;

cout << s4 << endl;

cout << StringReverseWord(s4) << endl;

cout << endl;

cout << s5 << endl;

cout << StringReverseWord(s5) << endl;

cout << endl;

system("pause");

return 0;

}

实验结果如下所示:

aa8238f55c244139b11d21d0d02e111d.jpg

网站文章

  • jep290涉及jdk版本_JDK 12 – JEP 325开关表达式

    jep290涉及jdk版本 JDK 12已于2019年3月19 日上线GA,继续致力于缩短发布周期和频繁发布。 该版本的功能部分可以在这里找到。 对于开发人员来说,有趣的功能之一是“ JEP 325开关表达式 ”,它可以作为预览功能使用。 此处定义的预览功能是: 预览语言或VM功能是Java SE平台的一项新功能,该功能已完全指定,完全实现但不是永久性的。 JDK功能发布中提供了该功能...

    2024-01-30 21:39:07
  • React 知识点整理

    React 知识点整理

    React 知识点整理

    2024-01-30 21:39:00
  • 通俗易懂设计模式解析——抽象工厂模式

    通俗易懂设计模式解析——抽象工厂模式

    前言  前面介绍了单例模式及工厂模式相关知识及示例,今天主要介绍的是抽象工厂模式,上一篇我们讲了工厂模式。将创建对象的任务委托给子类,延迟创建。解决工厂中责任的划分。实现具体工厂与产品之间的一一对应。解决的是”单个对象”的问题。  华为工厂除了生产华为手机之外。肯定也会有原件配套的充电线和耳机。这时工厂对应的是一套产品该如何解决了呢?显然不再适合使用工厂模式了。今天将的抽象工厂模...

    2024-01-30 21:38:25
  • python调用程序call_Python下的subprocess.call()使用和注意事项

    Python虽然有许多优秀的第三方库,但在实际使用的时候免不了使用一些cmd调用的程序,毕竟这类程序比较底层,更快、也更稳定。比如GDAL、FFmpeg、 ImageMagick等。利用Python调...

    2024-01-30 21:38:18
  • 详解TCP/IP协议栈

    详解TCP/IP协议栈

    之前对网络各层作用的了解一直都比较模糊,对各个协议的作用也不甚清楚,最近看到了一篇对TCP/IP协议栈讲解比较清晰的博文,特地转载过来。什么是TCP/IP协议栈TCP/IP 协议栈是一系列网络协议的总...

    2024-01-30 21:37:44
  • SpringBoot devtools热部署

    SpringBoot devtools热部署

    一、pom.xml添加依赖二、修改idea默认配置三、测试是否生效一、pom.xml添加依赖&lt;dependencies&gt; &lt;!-- 基础组件--&gt; &lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId...

    2024-01-30 21:37:38
  • 实验四

    PC端配置:配置ip地址、网关。交换机配置:system-viewvlan 30vlan 40quitinterface gi 1/0/1port link-type accessport access vlan 30interface gi 1/0/2port link-type accessport access vlan 40quitint...

    2024-01-30 21:37:32
  • 《嵌入式虚拟化技术与应用》:深入浅出阐述嵌入式虚拟机原理,实现“小而能”嵌入式虚拟机!

    《嵌入式虚拟化技术与应用》:深入浅出阐述嵌入式虚拟机原理,实现“小而能”嵌入式虚拟机!

    本书首先介绍虚拟化技术的基本原理,以及KVM在云服务器上实现。然后围绕虚拟化技术的核心内容,从CPU虚拟化、内存虚拟化、中断虚拟化和设备虚拟化这四个方面,重点介绍了开源嵌入式虚拟机ACRN的架构、原理...

    2024-01-30 21:37:04
  • Java通过JNI调用dll动态库详细步骤 最新发布

    Java通过JNI调用dll动态库详细步骤 最新发布

    Java通过JNI调用dll动态库,供测试使用。dll实现打印语句‘this is a test from zdll!’,及返回字符串‘hello zdll’的功能

    2024-01-30 21:36:57
  • React解密:React高阶组件是什么?

    React中比较高大上的东西,高阶组件应该算是一个点,开发中也许写的不多,但是我们必须要直到高阶组件是什么,高阶组件能干什么?A higher-order component is a functio...

    2024-01-30 21:36:48