Lỗi stack around the variable 'x' was corrupted

Bài tập của em là:

Viết chương trình nhập một số nguyên, xuất lại số đó ở dạng chuỗi nhưng có dấu “,” ngăn cách hàng triệu, ngàn… Ví dụ:
Nhập: N = 123456789
Xuất: S = “123,456,789”

em đã làm được bài này và đây là code của em http://codepad.org/83H3Mzlw, nhưng sau đó nó lại bị như thế này

Em đã tìm trên mạng và sửa lại nhưng vẫn không được, mong mọi người giúp đỡ em.

Em xin cám ơn

int j = strlen(s) - 1
Câu này chỉ đúng nếu còn giữ kí tự NUL. Ta có thể tự tính lấy số này.

1 Like

Dạ em chưa hiểu ý của anh lắm ạ, anh có thể giải thích lại được không ạ. Em xin cám ơn.

Vì quy ước là chuỗi kết thúc bằng ‘\0’ (NUL), nên phải đặt lại nó thì mới chạy strlen().

Thực ra ta chỉ cần strlen đúng một lần khi bước vào hàm. Nói về việc tự tính thì ta có thể tính được luôn cần chèn bao nhiêu dấu {phẩy | chấm} từ độ dài chuỗi. Vậy ta dùng cú pháp

s[i+m] = s[i] với m là số dấu phẩy còn phải chèn thêm.

(Xóa tương tự :smiley: )

2 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?