我正在尝试通过空格手动解析字符串,而不使用 strtok() 或 string.h 中的任何内容。这看起来像正确的方法吗?当我尝试这个时,我一直跳过字符串的末尾。
char cmd[1024];
int ret = read(STDIN, cmd, 1023);
cmd[ret-1] = '\0';
char * args[128];
int length = 0;
char * startptr = cmd;
char * endptr = cmd;
while(1){
if(*startptr == '\n' || *startptr == '\0'){
break;
}
if(*startptr == ' '){
startptr ++;
endptr ++;
continue;
}
// startptr is placed
if(*endptr != '\0' || *endptr != '\n' || *endptr != ' '){
endptr ++;
continue;
}
// both pointers placed
char * i = startptr;
for(i = startptr; i != endptr; i++){
args[length][i-startptr] = *i;
}
length ++;
startptr = endptr;
if(*endptr == '\0' || *endptr == '\n'){
break;
}
}