Cannot convert argument from 'const char []' to 'char *'

Có cách nào để truyền chuỗi vào char không nhỉ? Tìm trên mạng thì nói rằng từ C++11 là không đúng nữa. Giải pháp dùng const nhưng nó chỉ truyền dc cái chuỗi đầu tiên đưa vào thì phải còn những chuỗi gọi hàm ở những lần sau nó báo lỗi luôn.

void print(int *a, int n, char* s)
{
    cout<<"\n"<<s<<" : ";
    for(int i = 0; i<n ; i++)  cout<<a[i]<<" ";
}

cannot convert argument 3 from ‘const char [15]’ to ‘char *’

Bạn đã test cái “hình như” của bạn chưa

Còn như trên thì thay signature thành (int *a, int n, const char *s) là được rồi, vì char[] sẽ decay thành pointer khi pass vào print()

4 Likes

Cái này thì nên đổi thành:

void print(int *a, int n, const char* s)
5 Likes

mình đã test const char* s rồi, nhưng nó chỉ chạy chuỗi đầu tiên, cò gọi sau thì lỗi

Đã fix được. Thank mn.

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