Hàm strcpy() sao chép chuỗi nguồn vào chuỗi đích. Khai báo trong <string.h> (C) hoặc <cstring> (C++). Trả về con trỏ đến chuỗi đích.
Cú pháp
char* strcpy(char* dest, const char* src);
Điểm quan trọng
- Sao chép toàn bộ chuỗi kể cả ký tự null kết thúc.
- Ghi đè hoàn toàn chuỗi đích (không nối thêm).
- Không thay đổi chuỗi nguồn.
- Không kiểm tra tràn bộ nhớ — đích phải đủ lớn.
Ví dụ
#include <stdio.h>
#include <string.h>
int main() {
char s1[20] = "Hello world!";
char s2[] = "Welcome";
printf("s1 truoc: %s\n", s1);
strcpy(s1, s2);
printf("s1 sau: %s\n", s1);
printf("s2: %s\n", s2);
return 0;
}
Kết quả
s1 truoc: Hello world! s1 sau: Welcome s2: Welcome
An toàn hơn: Dùng strncpy(dest, src, n) để giới hạn số ký tự sao chép, hoặc strlcpy (BSD) / strcpy_s (C11 Annex K). Luôn đảm bảo buffer đích đủ lớn.