合法的C标识符
Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description
给出一个标识符,请你判断它是否是C语言合法的标识符。
Input
输入一个标识符,长度不超过100。
Output
判断是否合法,如果是输出YES,否则输出NO。
Sample Input
123You
Sample Output
NO
Hint
C语言规定:标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线。
Source
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
String s = input.next();
char[] arr = s.toCharArray();
int i,flag = 1;
for(i = 0;i < arr.length;i++) {
if(i == 0) {
if((arr[i] >= 'a' && arr[i] <= 'z' )|| (arr[i] >= 'A' && arr[i] <= 'Z' )|| arr[i] == '_') { //首字母为字母或者下划线
flag = 0; //若满足,则继续循环检查下一字母
}
else {
flag = 1; //若不满足条件,退出循环,为非法标识符
break;
}
}
else {
if((arr[i] >= 'a' && arr[i] <= 'z' )|| (arr[i] >= 'A' && arr[i] <= 'Z' )|| (arr[i] == '_') || (arr[i] >= '0' && arr[i] <= '9')) { //为数字字母下划线
flag = 0;
}
else {
flag = 1;
break;
}
}
}
if(flag == 1) {
System.out.println("NO");
}
else {
System.out.println("YES");
}
input.close();
}
}