0
char name[50];
int valid;

do{
      valid=1;
      printf("Enter name for Salesman: ");
      fgets(name,50,stdin);
      if(!isalpha(*name)) //it will only scan for the first character of string
      {
          printf("Only alphabet is allowed.\n");
          valid=0;
      }
  }while(valid==0);

文字列全体に数値入力がないようにしたい。

4

2 に答える 2

1

文字列全体を処理する必要があります。

int i = 0;
for (i = 0; i < strlen(name) && i < 50; i++) {
  if (!isalpha(name[i])) {
    valid = 0;
    printf("Please only use alphabetic characters!\n");
    break;
  }
}
于 2012-11-01T11:37:20.107 に答える
0

C言語はJavaのように正規表現をサポートしていませんか?

だから私たちはこのようにJavaでそれを行うことができます:

String test= "Any String even if 1 digit is in between";

Pattern p = Pattern.compile("[0-9]+");

Matcher m = p.matcher(test);

if (m.find())
{               
    System.out.println("Numeric is not allowed");
}
于 2012-11-01T12:45:33.367 に答える