gpt4 book ai didi

c - 从指令中获取两个字符串

转载 作者:太空宇宙 更新时间:2023-11-03 23:50:57 25 4
gpt4 key购买 nike

我正在做一项工作,暗示使用指令在文件中执行某些操作,这些操作将从存档中读取,或通过输入给出。

正是我的问题涉及instruction given by input的操作。

假设我向我的程序提供以下指令:

select 7
insert "foo foo"
delete 8

在下面显示的代码中,我将在一个字符串中得到完整指令(如上所示):

char input[256];
int i;

printf("Insert an instruction: ");
fgets(input, 256, stdin);

/* Newline removal */
for(i = strlen(input)-1; i && input[i] < ' '; i--)
input[i] = 0;

现在,如您所见,说明分为两部分首先是要完成的操作。举个例子, Action 是这些:

select
insert
delete

然后是将伴随该指令的数字或字符串。在给出的示例中:

7
"foo foo"
8

所以,基本上,我有完整的说明,但我希望该说明在两个单独的字符串中,这样我可以更好地使用它们。

我该怎么做?我需要以其他方式输入,还是拆分字符串?或者在这种情况下我需要两个以上的字符串?

最佳答案

最好将您的输入strdup(),然后您可以将其分成两个单独的字符串。如果您不担心修改输入,则不必对它进行 strdup,但我认为这是一种很好的做法。

#include    <string.h>

int main()
{
char *p ;
char *cmd ;
char *arg ;

char input[256] ;

strcpy(input,"command argument") ;

char *t = strdup(input) ; /* if you cannot modify the input */

p = cmd = t ;
while (*p != ' ' && *p != 0 && *p != '\n') p++ ;
*p++ = 0 ;
while (*p == ' ') p++ ;
arg = p ;

return 0 ;
}

关于c - 从指令中获取两个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20019407/

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