gpt4 book ai didi

c - 奇怪的行为

转载 作者:太空宇宙 更新时间:2023-11-04 01:11:27 25 4
gpt4 key购买 nike

char line[255];
char *token = NULL;
char *line2 = NULL;
char *temporaryToken = NULL;

if( scanf(" %[^\n]", line) > 0)
token = strtok( line, ";" ); //divide the line by ;
do
{
line2 = token;
temporaryToken = strtok(line2, " ");
do
{
//divide the line2 by spaces into command and args, not the question here]
temporaryToken = strtok( NULL, " " );
}while (temporaryToken != NULL );
token = strtok( NULL, ";" );
}while(token != NULL);

顺便说一下,这不是我的代码,只是一个例子

在我的程序中,当我在第二次拆分之前打印“token”变量时,它会打印出所有内容,直到 ;性格。

例如,假设 stdIn 接受了“ls -la; mkdir lololol; ls -la”,它会打印“ls -la”。但是,在第二次拆分之后,打印“token”只会打印“ls”。

这是为什么,我该如何解决?

最佳答案

strtok 修改原始字符串。如果你想像这样混合调用,你要么需要制作一个副本,要么使用 strtok_r

关于c - 奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11911884/

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