gpt4 book ai didi

c - 如何在 C 中将字符串 "this is a string of words"作为 argv[1] 打印出来?

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

./a.out "this is a string of words"

char *str = argv[1];
printf("%s\n", str);

我如何操纵它以使其占据空间?现在我只能打印“this”,因为空格阻止了参数的其余部分的打印!

<小时/>

好吧,所以我假设它是我自己的系统...可能有 shell 或其他东西。

我已经尝试了所有这些,但没有一个起作用:

printf("%s\n", str);

printf("%s\n", argv[1]);

while (*p != '\0')
{
printf("%c", *p);
p++;
}

最佳答案

假设完成的代码如下所示:

#include <stdio.h>

int main(int argc, char **argv)
{
if (argc > 1)
{
char *str = argv[1]; // Not really necessary, but consistent with the question
printf("%s\n", str);
}
return 0;
}

那么在具有标准 shell 的类 Unix 系统上,几乎不可能看到您声称看到的内容。考虑到 e1.c 中的源代码并已编译 e1 (我使用 make,所以我永远不会得到程序 a.out ),我可以运行:

$ ./e1 "This is a string of words"
This is a string of words
$

正如预期的那样。如果您使用一些晦涩的调用,您可能会得到 This:

$ ./e1 $(echo "This is a string of words")
This
$ ./e1 “This is a string of words”
“This
$

第二个命令使用 Unicode U+201C('',左双引号)和 U+201D('',右双引号) ) 代替 U+0022 ('"', QUOTATION MARK)。shell 不会将这些识别为 shell 引号,因此您可以看到开放引号和单词 'This' 作为第一个命令的参数。然而,这作为对您的问题的解释是不太可能的。

因此,要么我推导的代码与您拥有的完整代码不够接近(请提供 SSCCE 的代码 - Short, Self-Contained, Correct Example ),要么您没有告诉我们您如何调用的完整故事程序。您使用哪个外壳?你在哪个平台?(我在 Mac OS X 10.9 Mavericks 和 GCC 4.8.2 上进行了测试,只是为了记录,但这不会对编译器敏感。我使用的是 Mac OS X 提供的 bash。我在 bash 中没有任何奇怪的设置,这可能会扰乱单词的解释,但是如果您在回显中没有看到 This 前面的双引号输出,……好吧,我无法解释你是如何得到你声称得到的输出的。)

关于c - 如何在 C 中将字符串 "this is a string of words"作为 argv[1] 打印出来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20035656/

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