What is output? void main() { char *s = "\12345s\n"; printf("%d", strlen(s)); printf("\n%s", s); getch(); }
Trả lời:
Đáp án đúng: A
Đoạn code C này sử dụng chuỗi ký tự có escape sequence. \123 là biểu diễn bát phân của ký tự có mã ASCII là 123 (tương ứng với ký tự '{'). Số 4 và 5 tiếp theo được hiểu là các ký tự riêng lẻ. Ký tự 's' và '\n' (xuống dòng) cũng được thêm vào. Do đó, chuỗi s sẽ chứa các ký tự: '{', '4', '5', 's', '\n'.
Hàm strlen(s) sẽ trả về độ dài của chuỗi s, không bao gồm ký tự null kết thúc chuỗi. Trong trường hợp này, độ dài chuỗi là 5.
printf("%d", strlen(s)); in ra độ dài chuỗi là 5.
printf("\n%s", s); in ra một dòng mới, sau đó in ra chuỗi s: {45s (xuống dòng)}.
Vì vậy, đáp án đúng là 5.