题目背景:用户输入n(n<=5)个单词,每个单词长度不超过30。反转元音字母,即将这几个单词从左往右数的第一个元音字母和从右往左数的第一个元音字母互换位置。

注:元音字母包括大小写

范例输入:

5

apple

opEpp

ioppp

pppIO

leetcode

范例输出:

eppla

Epopp

oippp

pppOI

leotcede

思路:利用双指针。将单词分为两半,分别考虑前半和后半部分的元音字母的情况,记录下元音字母及其位置,再分情况来交换。

示例代码:                                                                                                ——for the final version

#include<iostream>
using namespace std;int main()
{int n;cin >> n;  //用户输入n个单词, n<=5, 每个单词长度不超30char arr[5][30];for (int i = 0; i < n; i++){cin >> arr[i];  //cin后系统自动在末尾加一个\0}//统计每个单词的长度int len[5] = { 0 };for (int i = 0; i < n; i++){for (int j = 0; arr[i][j] != '\0'; j++){len[i]++;}}for (int i = 0; i < n; i++){//分别存元音字母在单词中的下标int where1[15] = { 0 };int where2[15] = { 0 };//头尾指针,分别指向单词的第一个和最后一个字母char* head = &arr[i][0];char* tail = &arr[i][len[i] - 1];//暂存元音字母char temp1[15] = { 0 };char temp2[15] = { 0 };//t即半段中元音的个数int t1 = 0, t2 = 0;//让头尾指针不断往中间移动,count统计移动了几次for (int count = 1; head <= tail; head++, tail--, count++){if (*head == 'a' || *head == 'e' || *head == 'i' || *head == 'o' || *head == 'u' || *head == 'A' || *head == 'E' || *head == 'I' || *head == 'O' || *head == 'U'){temp1[t1] = *head;where1[t1] = count;t1++;}if (*tail == 'a' || *tail == 'e' || *tail == 'i' || *tail == 'o' || *tail == 'u' || *tail == 'A' || *tail == 'E' || *tail == 'I' || *tail == 'O' || *tail == 'U'){temp2[t2] = *tail;where2[t2] = len[i] - count + 1;t2++;}}//当单词的后半部分没有元音字母时if (t2 == 0){for (int y = 0; t1 != 0; y++, t1--){arr[i][where1[y] - 1] = temp1[t1 - 1];arr[i][where1[t1 - 1] - 1] = temp1[y];}}//当单词的前半部分没有元音字母时if (t1 == 0){for (int y = 0; t2 != 0; y++, t2--){arr[i][where2[y] - 1] = temp2[t2 - 1];arr[i][where2[t2 - 1] - 1] = temp2[y];}}for (int y = 0; t1 != 0 && t2 != 0; y++, t1--, t2--){arr[i][where1[y] - 1] = temp2[y];arr[i][where2[y] - 1] = temp1[y];}}for (int i = 0; i < n; i++){cout << arr[i] << endl;}return 0;
}

运行截图:

c++字符串中元音字母转置相关推荐

  1. 统计字符串中元音字母的个数 C语言编程,统计字符串中各元音字母(即A,E,I,O,U)的个数。...

    下列给定函数中,函数fun的功能是:统计字符串中各元音字母(即A,E,I,O,U)的个数.注意:字母不分大小写.例如,输入THIs is a boot,则应输出是1 0 2 2 0. 请改正程序中的错 ...

  2. 任意输入一个正整数m和m个字符串,统计每行字符串中元音字母的个数。要求使用函数vowel()来判断是否为元音,其余功能在main()函数中实现。

    int vowel(char c) {如果c是元音,返回1,否则返回0} 输入要求:第1行输入m,第2至第m行输入m个字符串,长度不超过50,以回车符结束. 输出要求:分m行输出统计的结果 样例输入: ...

  3. 【C语言】作业:统计字符串中元音字母a,e,i,o,u的个数并输出

    #include<stdio.h> int main() {int i,sum=0;char s[80];printf("input the string:\n");g ...

  4. C语言:统计句子中元音字母的个数

    统计句子中元音字母的个数 (30 分) 输入一个英文句子,已知:第一个字符是大写,其它字符都是小写,句子以 . 结束. 判断首字母是否为元音字母,并统计句子中元音字母(a.e.i.o.u)的个数,若首 ...

  5. c语言:将字符串的元音字母复制到另外一个字符串

    c语言:将字符串的元音字母复制到另外一个字符串 #include<stdio.h> #include<stdlib.h> #include<string.h> #i ...

  6. 转换成字符串_汇编语言--将字符串中小写字母转换成大写字母

    将字符串中小写字母转换成大写字母 思路: 将键盘上输入的字符读入 调用DOS 10号功能 利用偏移量的性质(类似指针的移动),逐一将字符转换为大写 在转换完的字符串后面 加上 结束符 '$' 利用DO ...

  7. java 首字母小写_java实现将字符串中首字母转换成大写,其它全部转换成小写的方法示例...

    本文实例讲述了java实现将字符串中首字母转换成大写,其它全部转换成小写的方法.分享给大家供大家参考,具体如下: public class TestSubstring { public static ...

  8. java创建一个程序把输入字符串的大小写互换_8 编写程序,从键盘接收一个字符串,对字符串中的字母进行大小写互转...

    package com.test; import java.util.Scanner; /** * 8 编写程序,从键盘接收一个字符串,对字符串中的字母进行大小写互转(大写字母转成小写,小写字母转成大 ...

  9. python电话号码对应的字符组合_Python3 在字符串中提取字母+数字组合微信账号、电话等 - pytorch中文网...

    今天处理数据要提取字符串中的微信,字符串中包含中文英文Emoji,标点符号等. python 提取字符串中的电话 提取电话相对简单,多个电话也可以提取 import re desstr = " ...

  10. Java黑皮书课后题第7章:*7.22(计算一个字符串中大写字母的数目)编写程序,从命令行输入一个字符串,然后显示字符串中大写字母的数目

    7.22(计算一个字符串中大写字母的数目)编写程序,从命令行输入一个字符串,然后显示字符串中大写字母的数目 题目 题目描述 破题 代码 运行实例 题目 题目描述 7.22(计算一个字符串中大写字母的数 ...

最新文章

  1. git切换ssh和http协议
  2. Nginx之rewrite简述
  3. 你真的了解 i++, ++i 和 i+++++i 以及 i+++i++ 吗?
  4. JavaME:Google静态地图API
  5. 工作总结7:自定义样式
  6. ML、DL、CNN学习记录8
  7. python 单词长度_用python手刃leetcode(58):最后一个单词的长度【简单题】
  8. 热门开源 WYSIWYG 编辑器 TinyMCE 被指存在严重的 XSS 漏洞
  9. 总结并发编程常见面试题
  10. python3+xlrd解析Excel
  11. VS2013解决error LNK2019: 无法解析的外部符号 mfcs120ud.lib
  12. 此文已删除,为何删不掉?
  13. Java 支付对接之微信/支付宝扫码支付(也就是H5支付)
  14. GIF图像动态生成-JAVA后台生成
  15. QT概念详解及开发入门简介
  16. 【日语】标日初级总结笔记
  17. Win10 去除OneNote 波浪下划线
  18. tomcat 7.0
  19. IT经理世界封面报道:淘宝潜规则
  20. 2022.09 青少年Python等级考试(六级) 选择题部分

热门文章

  1. 页面提示以及页面刷新
  2. QT如何实现二级下拉菜单(Combo box)
  3. 陶哲轩实分析 3.4
  4. 2018区块链技术及应用峰会(BTA)倒计时2天,最强百人区块链大咖齐聚
  5. IoT 物联网设备OTA:升级包下载过程详解
  6. linux free空闲内存用尽,Linux中显示空闲内存空间的free命令的基本用法
  7. 简单介绍公有云、私有云、混合云
  8. vb 复制 剪贴板 html,VB.NET中调用系统的剪贴板完成数据的复制和粘贴
  9. sis最新地址获取方法_SIS系统在制药行业内的运用—奥格经典案例
  10. 梦幻西游修炼金钱计算器