Tôi đã đọc rằng việc sử dụng strlen
đắt hơn thử nghiệm như thế này:Có sử dụng strlen() trong điều kiện vòng lặp chậm hơn là chỉ kiểm tra ký tự null không?
Chúng tôi có một chuỗi dài x
dài 100 ký tự.
Tôi nghĩ rằng
for (int i = 0; i < strlen(x); i++)
là tốn kém hơn mã này:
for (int i = 0; x[i] != '\0'; i++)
Có đúng? Có lẽ mã thứ hai sẽ không hoạt động trong một số trường hợp như vậy là tốt hơn để sử dụng đầu tiên?
Nó sẽ tốt hơn với bên dưới?
for (char *tempptr = x; *tempptr != '\0'; tempptr++)
vòng lặp thứ hai gần như những gì 'strlen' thực hiện trong nội bộ; tôi vẫn không nhìn thấy điểm của câu hỏi –
Viết nó và kiểm tra nó. Số liệu là cách tốt nhất để biết cái nào tốt hơn. –
Nếu bạn phải dành nhiều thời gian và công sức lo lắng về những thứ như thế này, bạn có thể tiết kiệm tiền bằng cách mua một máy tính nhanh hơn. –