题解 | #表示数字#
表示数字
https://www.nowcoder.com/practice/637062df51674de8ba464e792d1a0ac6
#include <ctype.h> #include <stdio.h> int main() { int a,b,len; char str1[300]={'\0'}; char str2[300]={'\0'}; gets(str1); b=0; len=strlen(str1); if(isdigit(str1[0]))//首个字母或其他的情况 { str2[0]='*'; str2[1]=str1[0]; b=2; } else { str2[0]=str1[0]; b=1; } for(a=1;a<len;a++) { if(isupper(str1[a])||islower(str1[a])||ispunct(str1[a])) //非数字情况 { if(isdigit(str1[a-1])) { str2[b]='*'; b++; str2[b]=str1[a]; b++; } else { str2[b]=str1[a]; b++; } } else if(isdigit(str1[a])) //数字情况 { if(isdigit(str1[a-1])) { str2[b]=str1[a]; b++; } else { str2[b]='*'; b++; str2[b]=str1[a]; b++; } } else { str2[b]=str1[a]; b++; } if(isdigit(str1[len-1]))//末尾字母或者其他的情况,isdigit不能直接用于==判断 { str2[b]='*'; } } puts(str2); return 0; }