题解 | #表示数字#
表示数字
https://www.nowcoder.com/practice/637062df51674de8ba464e792d1a0ac6?tpId=37&tqId=21319&rp=1&ru=/exam/oj/ta&qru=/exam/oj/ta&sourceUrl=%2Fexam%2Foj%2Fta%3Fpage%3D4%26pageSize%3D30%26search%3D%26tpId%3D37%26type%3D37&difficulty=undefined&judgeStatus=undefined&tags=&title=
#include <stdio.h>
int main() {
char a[500];
while (scanf("%s",a) != EOF) {
int n=0,i,j,k;
while(a[n]!=0) n++;
//自己插一个非数字的首字符
for(j=n;j>-1;j--)
a[j+1]=a[j];
n++;
a[0]='*';
for(i=0;i<n;i++){
if(((a[i]<'0'||a[i]>'9')&&(a[i+1]>='0'&&a[i+1]<='9'))||((a[i+1]<'0'||a[i+1]>'9')&&(a[i]>='0'&&a[i]<='9')))
{
for(j=n;j>i;j--)
a[j+1]=a[j];
n++;
a[i+1]='*';
i++;
}
}
//输出
for(i=1;i<n;i++)
printf("%c",a[i]);
}
return 0;
}
恶心的在于第一个字符是数字很难处理,这个时候就直面困难,自己插一个非数字的首字符,输出的时候跳过就行
