0965303260
TP. Hồ Chí Minh

[C]. Hàm strcpy() và strncpy()

Hàm strcpy() được sử dụng để copy chuỗi trong C, bài học này mình sẽ hướng dẫn cách sử dụng cũng như tự xây dựng hàm này

NỘI DUNG : 

  • Hàm strcpy()
  • Hàm strncpy()
  • Video tutorial

strcpy

1. Hàm strcpy()

Hàm strcpy()

Hàm strcpy() copy nội dung từ xâu nguồn sang xâu đích và trả về con trỏ tới xâu đích sau khi copy xong.

Hàm này thuộc thư viện string.h

Cú pháp : 

char* strcpy(char *dest, char *src); 

Tham số : 

  • char *dest : Chuỗi đích
  • char *src : Chuỗi nguồn 

Giá trị trả về : Con trỏ tới chuỗi đích sau khi copy xong nội dung

Lưu ý rằng hàm strcpy sẽ xóa nội dung của xâu ký tự đích trước khi copy.

Ví dụ : 

#include "stdio.h"
#include "string.h"

int main(){
    char s[1000] = "blog.28tech.com.vn";
    char t[1000] = "28tech C programming !";
    char *res = strcpy(s, t);
    printf("%s\n", s);
    printf("%s\n", res);
    return 0;
}

Output : 

28tech C programming !
28tech C programming !


Xây dựng hàm strcpy()

Để xây dựng hàm này ta tiến hành gán từng ký tự của xâu nguồn cho xâu đích, sau khi gán xong bạn cần cho kí tự cuối cùng của xây đích là null

Hàm trả về con trỏ tới xâu đích

Code : 

#include "stdio.h"
#include "string.h"

char* my_strcpy(char *dest, char *src){
    for(int i = 0; i < strlen(src); i++){
        dest[i] = src[i];
    }
    dest[strlen(src)] = '\0';
    return dest;
}

int main(){
    char s[1000] = "blog.28tech.com.vn";
    char t[1000] = "28tech C programming !";
    char *res = my_strcpy(s, t);
    printf("%s\n", s);
    printf("%s\n", res);
    return 0;
}

Output : 

28tech C programming !
28tech C programming !


2. Hàm strncpy()

Hàm strncpy() chỉ copy n kí tự từ xâu nguồn sang xâu đích

Hàm này cũng thuộc thư viện string.h

Cú pháp : 

char * strncpy (char *dest, char *src, size_t n );

Tham số : 

  • char *dest : xâu ký tự đích
  • char *src : xâu ký tự nguồn
  • n : số lượng kí tự muốn copy

Giá trị trả về : Con trỏ tới xâu ký tự đích sau khi copy

Lưu ý rằng xâu ký tự đích sẽ giữ nguyên các kí tự sau n kí tự được copy

Ví dụ : 

#include "stdio.h"
#include "string.h"

int main(){
    char s[1000] = "123456789";
    char t[1000] = "28tech C programming !";
    char *res = strncpy(s, t, 6);
    printf("%s\n", s);
    printf("%s\n", res);
    return 0;
}

Output : 

28tech789
28tech789


Video hàm trong string.h : 

0XeOSKO0L08