gpt4 book ai didi

检查 `isalpha` 的返回值

转载 作者:太空宇宙 更新时间:2023-11-04 08:02:07 24 4
gpt4 key购买 nike

#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”符号。我的 friend 告诉我把这个和我的代码工作。 “== 0”是做什么的?

最佳答案

isalpha 的签名是int isalpha ( int c )

  • Parameters c character to classify

  • Return value Non-zero value if the character is an alphabetic character, zero otherwise.

因此,如果 c 不是 alpha,则返回非零值,否则返回 0。

关于程序:

  1. scanf需要char *,不是&userPassword,也就是char **scanf("%s", userPassword) 没问题。
  2. char 传递给 isalpha 而不是 char *

如果你想检查一个字符串是否全是字母,你可以简单地迭代字符串并检查每个字符。喜欢:

bool is_all_alpha(char *s) {
for (; *s!='\0'; ++s) {
if (!isalpha(*s)) return false;
}
return true;
}

  1. http://en.cppreference.com/w/cpp/string/byte/isalpha

关于检查 `isalpha` 的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45666338/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com