逆序字符串
发布日期:2021-07-01 04:22:25 浏览次数:46 分类:技术文章

本文共 1343 字,大约阅读时间需要 4 分钟。

文章目录

1 将输入的字符串进行逆序输出

输入一个字符串,然后把这个字符串逆转输出。

如:

  • 输入:123456789
  • 输出:987654321
#include 
#include
#include
using namespace std;int main(void) {
string str; int i; int j; char tmp; cout << "请输入一个字符串: " << endl; cin >> str; i=0; j = str.length() - 1; while (i < j) {
tmp = str[i]; str[i] = str[j]; str[j] = tmp; i++; j--; } cout << str << endl; system("pause"); return 0;}

2 将输入的英文句子以英文单词为单位进行逆序输出

输入一句话,然后把这个字符串以单词为单位,逆转输出。比如将“Alice call Jack”转换为“Jack call Alice”。

思路分析:

方式一:

  1. 首先将每个单词进行逆序,“ecilA llac kcaJ”。
  2. 然后再将整个句子进行逆序,“Jack call Alice”。

方式二:

  1. 首先将整个句子进行逆序,“ecilA llac kcaJ”。
  2. 然后再将每个单词进行逆序,“Jack call Alice”。

下面以第一种方式进行实现:

#include 
#include
#include
using namespace std;int main(void) {
char str[256] = {
0 }; int i = 0, j = 0; cout << "请输入一句英文:"; gets_s(str, sizeof(str)); while (str[i]) {
/* 首先跳过前面的空格 */ while (str[i] == ' ') {
i++; } j = i; /* 找到一个完整的单词 */ while (str[j] && (str[j] != ' ')) {
j++; } /* 将找到的单词进行逆转 */ for (int k1 = i, k2 = j - 1; k1 < k2; k1++, k2--) {
char tmp = str[k1]; str[k1] = str[k2]; str[k2] = tmp; } i = j; } /* 再将全部字符进行翻转即可得到最终结果 */ for (int k1 = 0, k2 = i - 1; k1 < k2; k1++, k2--) {
char tmp = str[k1]; str[k1] = str[k2]; str[k2] = tmp; } cout << str << endl; system("pause"); return 0;}

转载地址:https://muzimin.blog.csdn.net/article/details/102970578 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:统计输入字符串中英文单词的个数
下一篇:字符集:ASCII、GB2312、GBK、GB18030、Unicode

发表评论

最新留言

不错!
[***.144.177.141]2024年04月14日 06时13分13秒