题解 | #表示数字#
表示数字
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; }
恶心的在于第一个字符是数字很难处理,这个时候就直面困难,自己插一个非数字的首字符,输出的时候跳过就行