解题思路:
分别判断每一段是否合法即可
注意事项:
1的ASCII码值是49
参考代码:
#include <stdio.h> #include <ctype.h>//使用isdigit函数 int main() { char s[31];//接收字符串 while(scanf("%s", s) != EOF) { int flag = 1; int sum = 0;//代表每一段的数字 for(int i=0; i<30; i++) { if(s[i] == '\0' || s[i] == '.') { if(sum>255) flag = 0; sum = 0;//一段结束,重置 if(s[i] == '\0') break;//已经是最后一段,结束 } else if(isdigit(s[i]))//判断是否是数字 { sum = sum*10 + s[i] - 48;//1的ASCII码是49 } else//说明是非法的字符 flag = 0; } printf("%c\n", flag?'Y':'N'); } return 0; }
0.0分
0 人评分