码迷,mamicode.com
首页 > 其他好文 > 详细

字符移位

时间:2016-08-28 13:52:54      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:

小Q最近遇到了一个难题:把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,且不能申请额外的空间。
你能帮帮小Q吗?

输入描述:

输入数据有多组,每组包含一个字符串s,且保证:1<=s.length<=1000.

输出描述:

对于每组数据,输出移位后的字符串。

输入例子:

AkleBiCeilD

输出例子:

kleieilABCD

 1 #include "stdafx.h"
 2 #include <iostream>
 3 #include <string>
 4 #include <algorithm>
 5 #include<vector>
 6 using namespace std;
 7 int main()
 8 {
 9     string s;
10     while (cin >> s)
11     {
12         int len = s.length();
13         char ch;
14         int tmp = 0;
15 
16         for (int i = 0; i < len-tmp; i++){
17             if (isupper(s[i])){
18                 ch = s[i];    //数组移位
19                 for (int j = i; j < len-1; j++){
20                         
21                     s[j] = s[j + 1];
22                 }
23                 s[len-1] = ch;
24                 tmp++;    //末尾是大写,不用遍历了。
25                 i--;    //移位后,要判断该位置的字符是不是大写。因此不能让索引加1
26             }
27         }
28         cout << s << endl;
29     }
30     return 0;
31 }

 

字符移位

标签:

原文地址:http://www.cnblogs.com/yuguangyuan/p/5814782.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!