首页 > 编程 > C++ > 正文

[华为OJ--C++]062-表示数字

2019-11-08 02:06:46
字体:
来源:转载
供稿:网友

题目描述:将一个字符中所有出现的数字前后加上符号“*”,其他字符保持不变

输入描述:输入一个字符串

输出描述:字符中所有出现的数字前后加上符号“*”,其他字符保持不变

输入例子:Jkdi234klowe90a3

输出例子:Jkdi*234*klowe*90*a*3*

算法实现:

#include<iostream>  #include<string>using namespace std;    //************************************************    // * Author: 赵志乾    // * Date: 2017-2-20     // * Declaration: All Rigths Reserved !!!    //***********************************************/  bool IsNumber(char c){	return c>='0'&&c<='9';}  int main()  {      string instr;	getline(cin,instr);	if(IsNumber(instr[0]))		cout<<"*"+instr.substr(0,1);	else		cout<<instr.substr(0,1);	for(int i=1;i<instr.length();i++)	{		if(IsNumber(instr[i])&&IsNumber(instr[i-1]))		{			cout<<instr.substr(i,1);		}		else if(!IsNumber(instr[i])&&!IsNumber(instr[i-1]))		{			cout<<instr.substr(i,1);		}		else		{			cout<<"*"+instr.substr(i,1);		}	}	if(IsNumber(instr[instr.length()-1]))	{		cout<<'*';	}	cout<<endl;    return 0;  }  


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选