【发布时间】:2021-04-11 18:54:07
【问题描述】:
我是编程新手,我面临着验证。我尝试编写一个程序,程序获取用户的Name 和Age 作为输入。我需要检查名称是否仅包含字母(它可以有空格)以及年龄是否仅来自数字。
我尝试使用函数IsAlpha() 和IsDigit(),但我认为在我的程序中这不是正确的方法,因为它只检查第一个字符。
例如,如果用户输入“Jane123 或 J0nas”,则会出现错误,并且与数字相同。
我想我应该在 if 中使用一些东西。有什么建议?谢谢。
【问题讨论】:
-
包括
ctype.h并查看isalpha()、isspace()和isdigit()。一次检查 1 个字符。 -
我想我应该在 while 中使用一些东西。是的,您需要使用循环。
-
字母和数字的概念很复杂,因为您应该使用UTF-8 everywhere。像
é或Ê(法语字母)或我在俄语中的姓氏(西里尔字母)СТАРЫНКЕВИЧ这样的字符呢?您可以考虑使用Glib library 或GNU libunistring ... ❶ (U+2776 DINGBAT NEGATIVE CIRCLED DIGIT ONE) 是一个数字吗?
标签: c validation digits letter