30/09/2018, 23:46
Cộng 2 chuỗi char* bị lỗi
e khai báo
char* a=" hom nay toi an";
char* b=" thit bo";
char* c;
main()
c=a; // OK
c+=b; // lỗi là sao vậy
ae giúp cái.mình lập trình vi điều khiển nên chỉ được dùng C thôi
Bài liên quan
Bạn học lại về pointer trong C đi
Neu trong C thi dung ham strcat()
Lúc này, bạn đang tạo ra 3 con trỏ, trong đó có 2 con trỏ trỏ tới chuỗi hằng.
Còn cái này là gán giá trị của a chứ không phải giá trị của chuỗi mà nó đang trỏ đến. Có nghĩa lúc này, c sẽ có địa chỉ của mảng hằng ký tự mà a đang trỏ tới.
Để chứng minh, bạn cứ gõ
Nó sẽ in ra hom hay toi an.
Cái này là sao nhỉ . Trong con trỏ không hề hỗ trợ toán tử này
Theo mình biết thì con trỏ có hỗ trợ các toán tử sau:
c = a //OK do a, b, c là các char pointer nên bạn có thể trỏ đi chỗ khác
c+=b; // pointer ko thể áp dụng toán tử này
Bạn đang dùng string literal ( constant) nên không thể update được. Bạn muốn update strings thì cần khai báo dạng array of characters.
Mình cũng đang học C, chửa có việc làm. Bạn cho mình cái bài vi điều khiển của bạn mình thử coi
bác muốn làm về chuỗi thì làm bằng string ấy, đừng xài con trỏ khi bác chưa học chứ