0 k thích
385 đã xem
trong Kiến thức CNPM bởi (240 điểm)

Cho em hỏi tại sao khi sử dụng hàm strtok trong thư viện string.h, nếu khai báo chuỗi *s thì không tách được còn khai báo s[] mới tách được ạ ?

Cụ thể là :

      char *s = "My name is Tony Blurt";
      char *p = strtok(s , " "); //Lỗi
 
      char s[] = "My name is Tony Blurt";
      char *p = strtok(s , " "); //Chạy bình thường

 

1 Câu trả lời

0 k thích
bởi (1.4k điểm)
đã được chọn bởi
 
Hay nhất

Khi thực hiện strtok(s, " ") thì chuỗi s bị sửa đổi (bị cắt ngắn lại angel : My name is Tony Blurt -> name is Tony Blurt), lúc tạo chuỗi = char* thì mình không thay đổi được nội dung của nó nên xảy ra lỗi, còn char s[] thì ngược lại.

Bạn tham khảo cái này nè:

http://stackoverflow.com/questions/1704407/what-is-the-difference-between-char-s-and-char-s-in-c

bởi (240 điểm)
Em cảm ơn ạ !
Chào mừng đến với Q&A FIT. Bạn có thể đặt câu hỏi và nhận được câu trả lời từ các bộ phận hỗ trợ và những thành viên khác tại Khoa Công nghệ Thông tin, Trường Đại học Khoa học Tự nhiên, Đại học Quốc gia TP.HCM. Bạn hãy đăng nhập bằng tài khoản Google để gửi hoặc trả lời các câu hỏi.
...