我想通過空格手動解析字符串,而不使用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;
}
}
你是否嘗試過使用調試器進行調試? – 2012-04-15 21:32:34