gpt4 book ai didi

c - 如何验证 ARGV 中的 key ?

转载 作者:行者123 更新时间:2023-11-30 14:33:30 25 4
gpt4 key购买 nike

我被困住了。已经尝试了好几天了我需要验证输入到 argv[1] 中的每个字符都是一个数字,但我尝试过 isdigitisalphachar, atoi 转换没有任何成功。我对编码还是新手。我很沮丧,删除了所有内容以重新开始,但这就是我现在的处境。

#include <cs50.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>

int main(int argc, string argv[])
{
if (argc == 2)
{
for (int k = 0; k <strlen(argv[1]); k++)
{
printf("Success!\n");
printf("%s\n", argv[1]);
}
}
else
{
printf("Usage: ./caesar key\n");
}
}

这是我之前所在的地方。每次尝试运行此命令时,我都会遇到清理错误:

#include <cs50.h>
#include <stdio.h>
#include <string.h>
include <ctype.h>
#include <stdlib.h>

int main(int argc, string argv[])
{
if (isdigit(argv[1]))
{
if(atoi(argv[1]))
{
if (argc == 2)
{
for (int x = 0; x < strlen(argv[1]); x++)
{
printf("Success!\n");
printf("%s", argv[1]);
}
}
}
}
else
{
printf("Usage: /caesar key\n");
}
}

如有任何帮助,我们将不胜感激!

最佳答案

一个快速而肮脏的例子 on onlinegdb :

没有测试太多...

#include <stdio.h>
#include <string.h>

int main(int argc, char * argv[])
{
if (argc == 2)
{
int n = strlen(argv[1]);
for (int k = 0; k < n; k++)
{
if ( isdigit(argv[1][k]) )
{
printf("%c is a digit\n", argv[1][k]);
}
else
{
printf("%c is not a digit\n", argv[1][k]);
}
}
}
else
{
printf("Error\n");
}
}

记住argv[1]是一个字符串,即。一个字符数组(末尾有一个空字符)。

所以你必须遍历这个数组的所有字符。

编辑:chmike 在其他答案中给出了很好的评论。

关于c - 如何验证 ARGV 中的 key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59270348/

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