Tôi nhận được bộ đệm char * có chiều dài là 10. Nhưng tôi muốn concat toàn bộ nội dung trong cấu trúc của tôi có biến char *.Làm thế nào để concat hai char * trong C?
typedef struct{
char *buffer;
//..
}file_entry;
file_entry real[128];
int fs_write(char *buffer, int size, int file) {
//every time this function is called buffer have 10 of lenght only
// I want to concat the whole text in my char* in my struct
}
Something như thế này:
real[i].buffer += buffer;
Làm thế nào tôi có thể làm điều này trong C?
Luôn sử dụng 'strncat' (cũng được bao gồm trong liên kết ở trên) và không phải' strcat'. – pickypg
Luôn luôn? Điều đó có vẻ hơi nặng tay. "Hãy cẩn thận" luôn luôn là lời khuyên tốt, mặc dù - Tôi sẽ đồng ý với điều đó. Đây là câu hỏi và một số câu trả lời liên quan đến thời điểm sử dụng: http://stackoverflow.com/questions/6491038/strcat-vs-strncat-when-should-which-function-be-used –
Nếu bạn không biết tại sao bạn sử dụng 'strcat', đó là vì hai bộ đệm được bảo đảm được xác định trước, sau đó bạn nên luôn sử dụng' strncat'. Một người nào đó bắt đầu trong C sẽ luôn tốt hơn bằng cách sử dụng 'strncat' trên' strcat' đơn giản chỉ vì rủi ro không đáng để thưởng không đáng kể. Xem xét những lợi ích thực sự là gì, tôi thậm chí sẽ cho rằng bạn sẽ không bao giờ thực sự được hưởng lợi từ nó trừ khi bạn đang viết một cái gì đó cực kỳ thấp và kiểm tra trước khi điều kiện tiên quyết đã được thực hiện. – pickypg