题解 | #表示数字#
表示数字
https://www.nowcoder.com/practice/637062df51674de8ba464e792d1a0ac6
//用空间换时间,两个数组,遇到数字就前后加*,否则就逐一复制
#include<stdio.h>
#include<string.h>
int main()
{
char arr1[100], arr2[201];
gets(arr1);
int sz = strlen(arr1), i = 0, j = 0;
for (i = 0; i < sz; i++)
{
if (arr1[i] >= '0' && arr1[i] <= '9')
{
if ((arr2[j - 1] != '*') && (arr2[j - 1] < '0' || arr2[j - 1]>'9'))
{
arr2[j] = '*';
j++;
i--;
}
else
{
if(arr1[i-1]=='*')
{
arr2[j] = '*';
j++;
}
arr2[j] = arr1[i];
j++;
}
if (arr1[i + 1] < '0' || arr1[i + 1]>'9')
{
arr2[j] = '*';
j++;
}
}
else
{
arr2[j] = arr1[i];
j++;
}
}
arr2[j]='\0';
printf("%s\n",arr2);
return 0;
}
文远知行公司福利 550人发布