gpt4 book ai didi

c - 传递 argv 语句的不同答案

转载 作者:行者123 更新时间:2023-12-04 04:56:30 25 4
gpt4 key购买 nike

嗨,我在 Eclipse 上运行了这个,但无法在测试中得到答案;

fun is good
my food
2 x 4 = 8
这是测试中的代码。
    #include<stdio.h>
#include<stdlib.h>
#include <string.h>

int main(int argc, char **argv)
{
printf("%s %s %s\n", argv[4], argv[2], argv[3]);
printf("%c%c %c%s\n", **argv, (*argv)[1], *argv[4], argv[3] + 1);
printf("%d x %d = %c", strlen(*argv + 2), argc - 1, *(*(argv+1)+2));
return EXIT_SUCCESS;
}
在 eclipse 我得到:
good CS800 is
/U gs
51 x 5 = p
在 Xcode 中,我得到:
good CS800 is
/U gs
118 x 5 = p
谢谢你,如果你能帮助我理解为什么我会得到这个。
编辑 :
我正在传递的话 -> myprog CS800 is good fun

最佳答案

argv[0] 是您的程序的名称,因此它们在您的示例中是这样的:

argv[0] = 可执行文件的名称

argv[1] = "myprog"

argv[2] = "CS800"

argv[3] = "是"

argv[4] = "好"

argv[5] = "有趣"

所以你需要将所有数字加 1,例如改变:

printf("%s %s %s\n", argv[4], argv[2], argv[3]);

到:
printf("%s %s %s\n", argv[5], argv[3], argv[4]);

编辑:我没有测试过这个,但尝试:
#include<stdio.h>
#include<stdlib.h>
#include <string.h>

int main(int argc, char **argv)
{
printf("%s %s %s\n", argv[5], argv[3], argv[4]);
printf("%c%c %c%s\n", *(*(argv+1)), (*(argv+1))[1], *argv[5], argv[4] + 1);
printf("%d x %d = %c", strlen(*(argv + 3)), argc - 2, *(*(argv+2)+2));
return EXIT_SUCCESS;
}

关于c - 传递 argv 语句的不同答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16691782/

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