我想把这个循环转换成for循环,但是我不能让它工作,它在c中。

while(args[argCounter]){
        if(!strcmp(args[argCounter], "|")){
            args[argCounter] = NULL;
            cmdbegin[child] = argCounter + 1;
            child++;
        }
        argCounter++;
}

最佳答案

我会翻译如下:

for (int argCounter = 0 ; args[argCounter] ; argCounter++){
    if(!strcmp(args[argCounter], "|")){
        args[argCounter] = NULL;
        cmdbegin[child++] = argCounter + 1;
    }
}

我添加了argCounter的声明和初始化,但您没有显示。转换非常机械:
argCounter++移动到for循环标题的第三个“隔间”,
我将child++移到赋值中,以便稍微缩短代码;这是可选的。

10-08 17:23