Hai cách khác là strcpy(str, "");
và string[0] = 0
Để thực sự xóa các nội dung Variable (trong trường hợp bạn có mã bẩn mà không phải là làm việc đúng với các đoạn mã trên: P) sử dụng một vòng lặp như trong ví dụ bên dưới.
#include <string.h>
...
int i=0;
for(i=0;i<strlen(string);i++)
{
string[i] = 0;
}
Trong trường hợp bạn muốn xóa một mảng phân bổ năng động của chars từ đầu, bạn có thể sử dụng một sự kết hợp của malloc() và memset() hoặc - và đây là cách nhanh hơn - calloc() mà làm điều tương tự như malloc nhưng khởi tạo toàn bộ mảng với Null.
Cuối cùng, tôi muốn bạn ghi nhớ thời gian chạy của mình. Tất cả các cách khác, nếu bạn đang xử lý các mảng lớn (6 chữ số trở lên), bạn nên cố gắng đặt giá trị đầu tiên thành Null thay vì chạy memset() thông qua toàn bộ Chuỗi.
Lúc đầu trông có vẻ bẩn hơn nhưng nhanh hơn. Bạn chỉ cần chú ý thêm về mã của bạn;)
Tôi hy vọng điều này là hữu ích cho bất cứ ai;)
Nguồn
2014-04-03 05:31:23
Ví dụ của bạn khó hiểu. Rõ ràng bộ đệm đã được khai báo ở một nơi khác và bạn cố gắng khởi tạo nó từ một chữ. Không cần phải xóa bất cứ điều gì ở đây. – pmr
string.empty() không sửa đổi chuỗi –