【华为oj】第一关

来源:互联网 发布:中性的衣服淘宝 编辑:程序博客网 时间:2024/09/21 09:01

描述

题目标题:

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

详细描述:

接口说明
原型:

int MarkNum(char *pInStr, char *pOutStr)

输入参数:

char *pInStr 输入的字符串

输出参数:

char *pOutStr 输出的字符串

返回值:

int 0:处理成功 -1:出现异常

限制:

 

知识点字符串,循环,数组题目来源内部整理练习阶段初级运行时间限制10Sec内存限制128MByte输入

输入一串字符

输出

输出一串处理过的字符

样例输入asdf123asdfe4样例输出asdf*123*asdfe*4*

#include <iostream>using namespace std;int MarkNum(char *pInstr,char *pOutStr);int isnum(char c);void newstr(char *str);int main(){char str[100];char outstr[200];gets(str);MarkNum(str,outstr);cout<<outstr;return 0;}int MarkNum(char pInStr[],char pOutStr[]){if(pInStr[0] == '\0')return -1;int len = strlen(pInStr);int i=0,j=0;for(i=0;i<len;i++,j++){if(isnum(pInStr[i])){pOutStr[j]='*';j++;pOutStr[j]=pInStr[i];while(isnum(pInStr[i+1])){i++;j++;pOutStr[j]=pInStr[i];}j++;i++;pOutStr[j]='*';j++;}pOutStr[j]=pInStr[i];}return 0;}int isnum(char c){if(c>='0'&&c<='9')return 1;return 0;}


0 0