Kết quả in ra màn hình của chương trình sau:
#include
Void main ()
{
Char *s;
S= "chao cac ban"; strcpy (&s[5], &s[9] ) ;
Printf ( "%s", s) ;
};
Trả lời:
Đáp án đúng: C
Chương trình C này thực hiện thao tác sao chép chuỗi (string copy) bằng hàm `strcpy`. Ban đầu, `s` trỏ đến chuỗi "chao cac ban". Lệnh `strcpy (&s[5], &s[9])` sẽ sao chép nội dung của chuỗi bắt đầu từ vị trí thứ 9 (ký tự 'b') vào vị trí thứ 5 (ký tự ' '). Do đó, chuỗi gốc bị thay đổi. Ta cùng phân tích chi tiết:
- Chuỗi ban đầu: "chao cac ban"
- `&s[5]` trỏ đến vị trí ký tự ' ' (khoảng trắng) sau "chao".
- `&s[9]` trỏ đến vị trí ký tự 'b' trong "ban".
- `strcpy (&s[5], &s[9])` sẽ sao chép "ban" (và ký tự null kết thúc chuỗi) vào vị trí bắt đầu từ `&s[5]`. Kết quả là chuỗi trở thành "chao ban".
Vì vậy, khi in ra bằng `printf("%s", s)`, kết quả sẽ là "chao ban".