如何确保命令参数的每个字符都是十进制数字?

问题描述 投票:0回答:2

我们必须编写代码以加密凯撒的密码。步骤之一是:您的程序没有打印输出所提供的命令行参数,而是检查以确保该命令行参数的每个字符都是十进制数字(即012等等),如果没有,则在打印消息用法:./caesar键后终止。但是,如果参数仅由数字字符组成,则应将该字符串(即使argv是字符串数组,即使这些字符串恰好看起来像数字)也转换为实际的整数,然后按如下所示打印出整数%iprintf。下面的代码是我所拥有的,但是它同时返回成功和错误。如何解决此问题,以便程序检查命令行参数的每个字符是否都是数字?Code I have

c command-line-arguments digits atoi
2个回答
0
投票

isdigit适用于包含字符代码的int,但是在执行isdigit(atoi(argv[1]))时,您首先尝试将字符串转换为整数,所以这是错误的。如果使用isdigit,则会对所有字符串进行迭代。


0
投票

这是检查字符串中所有字符是否在给定集中的简单方法:


0
投票

您可以有效地执行此操作:

© www.soinside.com 2019 - 2024. All rights reserved.