检查`isalpha`的返回值

时间:2017-08-14 01:27:17

标签: c isalpha

#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”有什么作用?

1 个答案:

答案 0 :(得分:2)

public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity { protected override void OnCreate(Bundle bundle) { TabLayoutResource = Resource.Layout.Tabbar; ToolbarResource = Resource.Layout.Toolbar; base.OnCreate(bundle); global::Xamarin.Forms.Forms.Init(this, bundle); LoadApplication(new App()); //set the status bar color Window.SetStatusBarColor(Android.Graphics.Color.Black); } } 的签名是isalpha

  
      
  • <强>参数   c要分类的字符

  •   
  • 返回值   如果字符是字母字符,则为非零值,否则为零。

  •   

因此,如果int isalpha ( int c )不是alpha,则返回非零,否则返回0。

关于该计划:

  1. c需要scanf,而不是char *,即&userPasswordchar **没问题。
  2. scanf("%s", userPassword)传递给char而不是isalpha
  3. 如果要检查字符串是否全部为alpha,则可以简单地迭代字符串并检查每个字符。像:

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