文章

4

粉丝

135

获赞

11

访问

24.3k

头像
字符移动(双字符串合并—暴力)
P1012 贵州大学机试题
发布于2022年8月2日 11:16
阅读数 5.5k

思路解释

创建三个字符数组,一个字符数组用来接收输入的字符串,一个只用来添加字符,一个只用来添加数字;

获取字符数组的长度,使用for循环判断已输入的数组的每个字符属于数字还是字符,将其分别添加到第一步中创建的数组中;

最后,再次使用for循环,将字符数组和数字字符数组中的内容添加到新数组中进行输出即可。

#include<iostream>
#include<algorithm>
#include<string.h>
using namespace std;

int main()
{
	char s[105];
	gets(s);
	
	char s_num[105];
	char s_zimu[105];
	int cnt1=0, cnt2=0;
	
	int len = strlen(s);
	for (int i=0; i<len; i++){
		if (s[i] >= '0' && s[i] <= '9'){
			s_num[cnt1++] = s[i];
		}else{
			s_zimu[cnt2++] = s[i];
		}
	} 
	
	char s1[105];
	int cnt3=0, cnt4=0;
	for (int i=0; i<len; i++){
		if(cnt4<cnt2){
			s1[i] = s_zimu[cnt4++];
		}else if (cnt3 < cnt1){
			s1[i] = s_num[cnt3++];
		}
	}
	cout<<s1<<endl;
	return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发