#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <math.h>
#include <string.h>
int main() {
char userPassword[20];
printf("Type in your password: \n");
scanf("%c", &userPassword);
if (isalpha(userPassword) == 0) {
printf("Nice");
} else {
printf("Nope");
}
return 0;
}
我在想一个密码,用来检查密码是否只包含字母。为什么这段代码只适用于“==0”符号。我朋友让我把这个和我的代码工作。“==0”是做什么的?
最佳答案
isalpha
的签名是int isalpha ( int c )
。
参数
c分类字符
返回值
如果字符是字母字符,则为非零值,否则为零。
因此,如果c
不是alpha,则返回非零,否则返回0。
关于程序:scanf
需要char *
,而不是&userPassword
,即char **
。scanf("%s", userPassword)
可以。
将char
传递到isalpha
而不是char *
。
如果您想检查一个字符串是否全部是alpha,您可以简单地迭代该字符串并检查每个单个字符。比如:
bool is_all_alpha(char *s) {
for (; *s!='\0'; ++s) {
if (!isalpha(*s)) return false;
}
return true;
}
http://en.cppreference.com/w/cpp/string/byte/isalpha
关于c - 检查isalpha的返回值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45666338/