1199. 保留整数

时间限制:1Sec内存限制:128MB通过:84提交:134

题目描述

输入一个字符串str1,把其中的连续非数字的字符子串换成一个‘*’,存入字符数组str2 中,所有数字字符也必须依次存入 str2 中。输出str2。

输入

输入为一行字符串str1,其中可能包含空格。字符串长度不超过80个字符。

输出

输出处理好的字符串str2。

样例输入

$Ts!47&s456 a23 +B9k

样例输出

47456239*

扫描二维码关注公众号,回复: 13364642 查看本文章
#include<stdio.h>
#include <string.h>
int main()
{
	char str[100];
	char strstr[100];
	//scanf("%s",str);
	gets(str);
	int n=strlen(str);
	int i;
	int m=0;
	if(str[0]>='0' && str[0]<='9')
		strstr[m++]=str[0];
	else
		strstr[m++]='*';
	for(i=1;i<n;i++)
	{
		if(str[i]>='0' && str[i]<='9')
		{
			strstr[m++]=str[i];
		}
		else
		{
			if(strstr[m-1]!='*')
			{
				strstr[m++]='*';
			}
		}
	}
	for(i=0;i<m;i++)
	{
		printf("%c",strstr[i]);
	}
	printf("\n");
	return 0;
}


我的代码,失败

#include<bits/stdc++.h>
using namespace std;
int main()
{
   char str1[105],str2[105];
   gets(str1);
   int len,s1=0;
   len=strlen(str1);
   for(int i=0;i<len;i++)
   {
       if(str1[i]>='1'&&str1[i]<='9')
       {
           str2[s1++]=str1[i];
       }
       else
       {
           for(int j=i;j<len;j++)
           {
               if(str1[j]>='1'&&str1[j]<='9')
               {
                   i=j-1;
                   break;
               }
           }
           str2[s1++]='*';
       }
   }
   for(int i=0;i<s1;i++)
   {
      printf("%c\n",str2[i]);
   }
}

猜你喜欢

转载自blog.csdn.net/weixin_52908342/article/details/119915319