gpt4 book ai didi

c - 输入中的 ';' 字符被误解

转载 作者:太空狗 更新时间:2023-10-29 14:51:10 25 4
gpt4 key购买 nike

我编写了一个程序来使用“;”拆分输入字符串作为终止符并打印';'之后的字符串部分。只要子字符串跟在“;”之后,程序就会显示正确的输出输入字符串中的不是有效的终端命令,但还会打印 command not found。另一方面,当子字符串后跟 ';' 时,它不会打印任何内容是有效的终端命令并将子字符串作为命令执行,例如如果输入“sjhjh;ls”,它将执行 ls 命令。

如何去掉 command not found 部分?这是代码:

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

int main(int argc, char *argv[])
{
char * input;
char * str;
char * word;
char terminator = ';';

if (argc < 2) {
fprintf(stderr,"ERROR, no string provided\n");
exit(1);
}

input = argv[1];
word = strchr(input, terminator);
if (word != NULL) printf("%s\n", word);
return 0;
}

最佳答案

当你执行你的程序时:

your_program_name sjhjh;ls

在命令行上,您实际上调用了两个 程序。第一个是 your_program_name sjhjh(所以,argv[1]"sjhjh"),第二个是 ls。您需要的是确保命令行的其余部分不被 shell 解析,这是通过正确引用它来实现的:

your_program_name 'sjhjh;ls'

关于c - 输入中的 ';' 字符被误解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41647861/

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