我们必须编写代码以加密凯撒的密码。步骤之一是:您的程序没有打印输出所提供的命令行参数,而是检查以确保该命令行参数的每个字符都是十进制数字(即0
,1
,2
等等),如果没有,则在打印消息用法:./caesar键后终止。但是,如果参数仅由数字字符组成,则应将该字符串(即使argv
是字符串数组,即使这些字符串恰好看起来像数字)也转换为实际的整数,然后按如下所示打印出整数%i
和printf
。下面的代码是我所拥有的,但是它同时返回成功和错误。如何解决此问题,以便程序检查命令行参数的每个字符是否都是数字?Code I have
isdigit
适用于包含字符代码的int
,但是在执行isdigit(atoi(argv[1]))
时,您首先尝试将字符串转换为整数,所以这是错误的。如果使用isdigit
,则会对所有字符串进行迭代。
这是检查字符串中所有字符是否在给定集中的简单方法:
您可以有效地执行此操作: