나는 문자가있는 일부 색인과 일부 문자가있는 문자 배열을 가져 와서 문자가있는 배열로 변경하려고합니다. 필요하면 공백을 제거하기 위해 색인 위로 이동합니다.C - Shift Array 이상
이 나의 접근 방식은 지금까지입니다 :
char *args[256];
void removeNulls(){
for(int i=0; i<=token; i++){
if(args[i] == '\0'){
shiftleft(i);
}
}
}
void shiftleft(int start){
for(int i=start; i<token; i++){
*(args+i) = *(args + i +1);
}
}
그러나, 나는이 작업을 수행하고 그 결과를 출력 할 때 내가 args 배열, 초기 args 배열은 에서, 그것은으로 구성되어 있음을 알 수 : 널 (null) , 널, 1,2,3,4 널을 제거한 후에이 배열은 널 1,2,3,4가 아닌 원하는 1,2,3,4가됩니다. 이 문제를 설명하기 위해 루프 조건에서 빠진 것이 있습니까?
당신이 당신의 완전한 프로그램을 보여줄 수있을 것입니다 볼 수? 그건 컴파일되지 않습니다. – Schwern
BTW,'* (args + i)'에 대한 편리한 속기가있다 : 그것은 args [i]'로 쓰여질 수있다. –