Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Chuỗi (String) trong ngôn ngữ C

Chuỗi trong C là mảng các ký tự kết thúc bằng ký tự null (\0). Ký tự null này được trình biên dịch tự động thêm vào cuối chuỗi, không do người dùng đặt.

Khác biệt mảng và chuỗi: Mảng ký tự thông thường không có ký tự null kết thúc, còn chuỗi thì có.

Cú pháp khai báo

char tenChuoi[kichThuoc];

Khởi tạo chuỗi

char tenChuoi[kichThuoc] = "chuoi";
char tenChuoi[kichThuoc] = { 'c','h','u','o','i','\0' };

Các hàm xử lý chuỗi phổ biến (thư viện <string.h>)

HàmChức năng
strcpy(s1, s2)Sao chép chuỗi s2 vào s1
strcat(s1, s2)Nối chuỗi s2 vào cuối s1
strlen(s1)Trả về độ dài chuỗi s1
strcmp(s1, s2)So sánh 2 chuỗi: trả 0 nếu bằng, >0 nếu s1>s2, <0 nếu s1<s2 (theo ASCII)
strchr(s1, ch)Trả về con trỏ đến lần đầu xuất hiện ký tự ch trong s1
strstr(s1, s2)Trả về con trỏ đến lần đầu xuất hiện chuỗi s2 trong s1

Ví dụ

#include <stdio.h>
#include <string.h>
int main() {
    char s1[20] = "Hello";
    char s2[20] = "World";
    int len, com;
    strcpy(s1, s2);
    printf("s1 và s2: %s\t%s\n", s1, s2);
    strcat(s1, s2);
    printf("Nối chuỗi: %s\n", s1);
    len = strlen(s1);
    printf("Độ dài s1: %d\n", len);
    com = strcmp(s1, s2);
    printf("So sánh s1 và s2: %d\n", com);
    return 0;
}

Kết quả

s1 và s2: World World
Nối chuỗi: WorldWorld
Độ dài s1: 10
So sánh s1 và s2: 87

Lưu ý quan trọng: Kích thước mảng phải đủ lớn để chứa chuỗi kết quả (kể cả ký tự \0), tránh tràn bộ nhớ (buffer overflow).