删除strtok [duplicate]最后一个匹配项末尾添加的“\n”

rm5edbpk  于 2022-12-02  发布在  其他
关注(0)|答案(1)|浏览(115)

此问题在此处已有答案

strtok not discarding the newline character(3个答案)
2天前关闭。
我想从strtok的最后一个匹配项中删除添加的“\n”。我尝试手动删除它,但不起作用
Mon代码est:

int parseCommand(char *inputCommand, struct Command *command){
    int i = 0;
    char *token;
    
    token = strtok(inputCommand, " ");

    while(token != NULL){
        command->argv[i] = token; 
        token =  strtok(NULL, " ");
        i++;
    }
    
    command->argc = i;
    command->commandName = command->argv[0];

    /*-----------FOR DEBUG-----------*/
    /*
    printf("%s : est le nom de la commande\n", command->commandName);
    
    for(int j = 0; j<i; j++){
        printf("command->argv[%i] %s\n",j, command->argv[j]);
    }
    */ 
}

inputCommand是字符串

luaexgnf

luaexgnf1#

\r \n添加到strtok()的分隔符中,或尝试:

buffer[strcspn(token, "\n")] = 0;

相关问题