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
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ạn học lại về pointer trong C đi 
Neu trong C thi dung ham strcat()
char* a=" hom nay toi an";
char* b=" thit bo";
char* c;
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 = a;
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õ
printf("%s", c);
Nó sẽ in ra hom hay toi an.
c += b;
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ứ
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?