gpt4 book ai didi

C:为什么从命令行获取字符串比在程序中设置字符串更容易被识别?

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

例如:假设我手动输入:

char * string = "\n\n"; 

当我调用strlen(string)时,我将正确地得到2

但是,如果我从命令行获取字符串,我会得到 strlen(string) 的值 4

这是为什么?如何解决此问题,以便得到 2 而不是 4

此外,当我尝试打印出命令行参数时,我得到了 "\n\n" 而不是两行跳过的行。

我该如何改变它?

最佳答案

当通过命令行插入\n\n时,读取到的字符为'\'、'n'、'\'、'n',因此大小为4是正确的。当您像您一样将\n\n 放入字符串常量时,您将特殊字符 '\n' 放入字符串中,因此“\n\n”的大小实际上是 2。

如果您想在字符串中放入“\n”,则必须右移“\\n”而不是“\n”。

另外,请注意,如果您想将带有大量文本的文本传递给程序,那么您不能在命令行中写入“\n\n ”并期望解析器将其解释为换行符 \n , \t等等...您应该考虑将其写入文件中,然后像这样调用您的程序 .\prog.out < sample.txt将文件内容重定向为标准输入的输入。

之后您应该考虑使用 strtok 来解​​析您的输入,strtok 将字符串拆分为标记,了解更多 here .

关于C:为什么从命令行获取字符串比在程序中设置字符串更容易被识别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21514764/

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