2011-10-20 29 views

Trả lời

8
printf("%.13s", labelOne); // stops after thirteen characters. 
printf("%.3s", &labelOne[ 13 ]); // prints three characters of the string that starts at offset 13 

Tôi nhận thấy có thể có lỗi hàng rào/mâu thuẫn trong câu hỏi hoặc câu trả lời của tôi, tùy thuộc vào quan điểm của bạn. Câu trả lời chính xác cho ví dụ thứ hai có thể là:

printf("%.3s", &labelOne[ 12 ]); 
+3

Một lời khuyên kiểu cách nhỏ: 'labelOne + 13' dường như neater và tự nhiên hơn '& labelOne [13]'. –

+0

@Blagovest - Lực lượng của thói quen tôi cho là. Tôi đã đi qua lại về vấn đề này và theo quan điểm của bạn, định dạng của bạn ngày nay phổ biến hơn nhiều. Khi tôi bắt đầu phát triển trong C lo nhiều năm, định dạng & str [bù đắp] dường như phổ biến hơn. –

13
printf("Label-one: %.*s", 13, str); 
printf("Label-two: %.*s", 2, str + 13); 

@ câu trả lời của Bob cũng là chấp nhận được nếu những độ dài không đổi, nhưng trong trường hợp chiều dài được xác định tại thời gian chạy, đây là phương pháp tốt nhất vì nó parametrises chúng.

Các vấn đề liên quan