0965303260
TP. Hồ Chí Minh

[C]. Hàm strcat() và strncat()

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

NỘI DUNG : 

  • Hàm strcat()
  • Hàm strncat()
  • Video tutorial 

strcate

1. Hàm strcat()

Hàm strcat() 

Hàm strcat() được sử dụng khi bạn cần nối 2 chuỗi ký tự trong C, hàm này nằm trong thư viện string.h

Cú pháp : 

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

Tham số : 

  • char *dest : Xâu ký tự đích
  • char *src : Xâu ký tự nguồn 

Giá trị trả về : Con trỏ trỏ tới xâu ký tự đích sau khi nối chuỗi nguồn

Ví dụ : 

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

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

Output : 

28tech C programming !


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

Để xây dựng hàm strcat() bạn lần lượt gán các kí tự trong xâu nguồn vào cuối xâu đích, chú ý sau khi nối chuỗi xong cần gán kí tự cuối xâu đích là ký tự null

Code : 

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

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

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

Output : 

28tech C programming !


2. Hàm strncat()

Hàm strncat() nối n ký tự đầu tiên từ xâu nguồn vào xâu đích, nếu độ dài của xâu ký tự nguồn nhỏ hơn n kí tự thì số lượng kí tự tối đa được nối vào xâu đích chính là độ dài xâu nguồn.

Cú pháp : 

char* strncat ( 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ự được nối

Giá trị trả về : Con trỏ trỏ tới xâu ký tự đích sau khi nối chuỗi nguồn

Ví dụ : 

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

int main(){
    char s1[1000] = "28tech ";
    char s2[1000] = "28tech ";
    char t[1000] = "C programming !";
    strncat(s1, t, 5);
    printf("%s\n", s1);
    strncat(s2, t, 200);
    printf("%s\n", s2);
    return 0;
}

Output : 

28tech C pro
28tech C programming !


Video hàm trong string.h : 

0XeOSKO0L08