Mọi người cho mình hỏi là mình có làm một bài tập liên quan đến việc tạo function xóa bỏ empty string.
Mình đã thực hiện viết xong function nhưng mình nghĩ lỗi nằm ở phần này nên mình chỉ show đơn giản 1 phần như sau:
char hello[][1] = {"hd", "", "f"};
int i = 0;
while(hello[i] != NULL)
{
printf("%s", hello[i]);
i++;
}
Mình thắc mắc là khi mình đọc tài liệu thì array of string sẽ dừng lại khi đạt NULL pointer, nhưng nếu đúng như suy nghĩ mình thì nó sẽ in ra
hdf
Nhưng kết quả lại là
hdfzC≈+≈ Φ√ ╨
//Cụ thể phần code mà mình triển khai:
void rm_empties(char **words)
{
int i=0, j, k, len, p = 0;
while(words[i] != NULL)
{
len = 0;
for(j=0; words[i][j] != '\0'; j++)
len++;
if(len == 0)
{
k = i;
while(words[k+1] != NULL) // words[k+1] không dừng lại khi gặp NULL
{
words[k] = words[k+1];
k++;
}
p++;
}
i++;
}
words[(i-p)] = NULL;
}