Cách sao chép mảng trong C?

tình hình mình không thực hành sao chép mảng được dù làm theo hướng dẫn, mọi người giúp mình cái lỗi sai với!
C code:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char* strcpy(char* coppyString, const char* stringCoppy);
int main(int argc, char* argv[])
{
    char string[] = "Text", coppy[100] = {0};

    strcpy(coppy, string);

    printf("string is: %s\n",string);
    printf("coppy is: %s\n",coppy);

    return 0;
}


char* strcpy(char* coppyString, const char* stringCoppy)
{
    coppyString = stringCoppy;
    return coppyString;
}

Không biết cái tài liệu nào hướng dẫn bạn “coppy” như thế này? Hàm strcpy là hàm C chuẩn, bạn đặt trùng tên thì nó báo lỗi chứ sao nữa :joy: tìm tên khác đặt lại đi nè.

Cái bạn làm là gán địa chỉ vùng nhớ chứ không phải copy :joy: copy là “sao chép” và dữ liệu không bị ảnh hưởng lẫn nhau khi 1 trong 2 bên có giá trị thay đổi.
Nên chỉ có 1 cách duy nhất là gán giá trị từng phần tử 1 của chuỗi nguồn sang chuỗi đích. Phần này đã có topic (và đã được giải đáp), bạn hãy thử tìm kiếm nhé!

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