01/10/2018, 09:19
Mảng Ký tự trong C
E đang làm một cái hàm copy_string theo cách return về. Nhưng bị vướng lúc khai báo để nhận kết quả return.
Ai có thể cho e cách khai báo một cái mảng kí tự nhận được một mảng kí tự khi return từ function được không ạ?
Bài liên quan
Khi khai báo mảng cho C thì luôn phải xác định số lượng phần tử cụ thể,
char name2[] = copy_str(name);
là mơ hồ vì không biết kết quả return là dài ngắn bao nhiêu cả.Copy kiểu vậy thì còn được gọi là Duplicate, hàm tương đương
char *strdup(const char *str);
. Nhưng thực chất hàmcopy_str
của bạn không thực sự ‘copy’ vì nó chỉ đơn thuần là trả về địa chỉ cũ thì không có khác biệt với toán tử gán giá trị cả. Bạn có thể dễ dàng tìm được mã nguồn củastrdup
về tham khảo mà chúc bạn thành công.Nếu vẫn chưa được thì bạn tham khảo cấp phát động, con trỏ (chuỗi). Dùng cấp phát động để xin cấp phát 1 vùng nhớ đủ lớn bằng kích thước chuỗi đưa vào
str
, sau đó là copy từng giá trị trênstr
vào vùng nhớ đó, return kết quả là xong.lúc e thử khai báo cả số lượng nó vẫn không được nhưng e thử khai báo theo kiểu con trỏ giống như kiểu con trỏ hàm trả về thì được ạ.
Đúng rồi em, anh đang nói cú pháp của C là mảng cần số lượng còn cái em trả về là con trỏ đang trỏ tới mảng.
Tại e nghĩ nó cũng như mảng số thôi ai dè
à a qua được round 18 chưa :V e vẫn đang bí
Lol, chuyện riêng thì em nên dùng message Làm anh hết hồn vì tưởng nay daynhauhoc hoạt động lỗi, post bài lộn topic. Em check messagebox nhé.