【C++】实验课结课考试题解

【题目大概描述】输入一串非数字的字符串,将其“解压”。比如说"3a"解压后为"aaa",“4d"解压后为"dddd”,如果是一串数字后面加一个空格,比如”2 “,那么就输出两个空格。

【样例输入】

abcd3e4 se11z

【样例输出】

abcdeee    sezzzzzzzzzzz

【样例输出说明】

中间的空格字符有4个

【可能的题解】

#include<iostream>
using namespace std;
//判断字符c是否为数字 
bool is_num(char c)
{
	return (c>='0'&&c<='9')?true:false;
}
//将字符c打印num遍 
void print(char c,int num)
{
	int i;
	for(i=0;i<num;i++) cout << c;
}
int main ()
{
	char s[501];
	cin.getline(s,501);
	for(int i=0;s[i]!='\0';i++)
	{
		
		if(is_num(s[i]))//如果遇到数字,就将数字保存到temp内 
		{
			int temp=0;
			for(;is_num(s[i]);i++)
			{
				temp*=10;//将temp乘10,留出个位数来存数 
				temp+=s[i]-'0';
			}
			print(s[i],temp);
		}
		else cout << s[i];
	}
	return 0;
}
发布了38 篇原创文章 · 获赞 4 · 访问量 1633

猜你喜欢

转载自blog.csdn.net/qq_15989473/article/details/103995785