Một số hàm xử lý chuỗi trong ngôn ngữ lập trình C

Mot so ham xu ly chuoi trong ngon ngu lap trinh c

Trong bài viết trước chúng ta đã biết về, trong bài viết hôm nay chúng ta cùng đi tìm hiểu một thư viện hỗ trợ rất nhiều hàm để làm việc với chuỗi – đó là thư viện string.h, và chúng ta sẽ cùng nhau đi tìm hiểu lần lượt các hàm trong thư viện string.h nhé.

Cộng chuỗi - Hàm strcat()

Cú pháp: char *strcat(char *des, const char *source)

Hàm này có tác dụng ghép chuỗi nguồn vào chuỗi đích.

Ví dụ: Nhập vào họ lót và tên của một người, sau đó in cả họ và tên của họ lên màn hình.

#include<conio.h>
#include<stdio.h>
#include<string.h>
int main()
{
    char HoLot[30], Ten[12];
    printf("Nhap Ho Lot: ");gets(HoLot);
    printf("Nhap Ten: ");gets(Ten);
    strcat(HoLot,Ten); /* Ghep Ten vao HoLot*/
    printf("Ho ten la: ");puts(HoLot);
    return 0;
}

Xác định độ dài chuỗi - Hàm strlen()

Cú pháp: int strlen(const char* s)

Ví dụ: Sử dụng hàm strlen xác định độ dài một chuỗi nhập từ bàn phím.

#include<conio.h>
#include<stdio.h>
#include<string.h>
int main(){
    char Chuoi[1000];
    int Dodai;
    printf("Nhap chuoi: ");gets(Chuoi);
    Dodai = strlen(Chuoi);
    printf("Do dai %d",Dodai);
    return 0;
}

Đổi chuỗi chữ thường thành chuỗi chữ hoa, hàm strupr()

Hàm strupr() được dùng để chuyển đổi chuỗi chữ thường thành chuỗi chữ hoa, kết quả trả về của hàm là một con trỏ chỉ đến địa chỉ chuỗi được chuyển đổi.

Cú pháp: char* strupr(char *s)

Ví dụ: Viết chương trình nhập vào một chuỗi ký tự từ bàn phím. Sau đó sử dụng hàm strupr() để chuyển đổi chúng thành chuỗi chữ hoa.

#include<conio.h>
#include<stdio.h>
#include<string.h>
int main()
{
    char Chuoi[255],*s;
    printf("Nhap chuoi: ");gets(Chuoi);
    s=strupr(Chuoi) ;
    printf("Chuoi chu hoa: ");puts(s);
    getch();
    return 0;
}

Đổi chuỗi chữ hoa thành chuỗi chữ thường, hàm strlwr()

Muốn chuyển đổi chuỗi chữ hoa thành chuỗi toàn chữ thường, ta sử dụng hàm strlwr(), các tham số của hàm tương tự như hàm strupr()

Cú pháp: char *strlwr(char *s)

Ví dụ: Viết chương trình nhập vào một chuỗi ký tự từ bàn phím. Sau đó sử dụng hàm strlwr() để chuyển đổi chúng thành chuỗi chữ thường.

#include<conio.h>
#include<stdio.h>
#include<string.h>
int main()
{
    char Chuoi[255],*s;
    printf("Nhap chuoi: ");gets(Chuoi);
    s=strlwr(Chuoi) ;
    printf("Chuoi chu thường: ");puts(s);
    getch();
    return 0;
}

Sao chép chuỗi, hàm strcpy()

Hàm này được dùng để sao chép toàn bộ nội dung của chuỗi nguồn vào chuỗi đích.

Cú pháp: char* strcpy(char *Des, const char *Source)

Ví dụ:

#include<conio.h>
#include<stdio.h>
#include<string.h>
int main()
{
    char Chuoi[255],s[255];
    printf("Nhap chuoi: ");gets(Chuoi);
    strcpy(s,Chuoi);
    printf("Chuoi dich: ");puts(s);
    getch();
    return 0;
}

Sao chép một phần chuỗi, hàm strncpy()

Hàm này cho phép chép n ký tự đầu tiên của chuỗi nguồn sang chuỗi đích.

Cú pháp: char *strncpy(char *Des, const char *Source, size_t n)

Ví dụ:

#include<conio.h>
#include<stdio.h>
#include<string.h>
int main()
{
    char Chuoi[255],s[255];
    printf("Nhap chuoi: ");gets(Chuoi);
    strncpy(s,Chuoi, 10);
    printf("N ky tu dau: ");puts(s);
    getch();
    return 0;
}

Tìm kiếm nội dung chuỗi, hàm strstr()

Hàm strstr() được sử dụng để tìm kiếm sự xuất hiện đầu tiên của chuỗi s2 trong chuỗi s1.

Cú pháp: char* strstr(const char *s1, const char *s2)

Kết quả trả về của hàm là một con trỏ chỉ đến phần tử đầu tiên của chuỗi s1 có chứa chuỗi s2 hoặc giá trị NULL nếu chuỗi s2 không có trong chuỗi s1.

Ví dụ: Viết chương trình sử dụng hàm strstr() để lấy ra một phần của chuỗi gốc bắt đầu từ chuỗi "hoc".

include<conio.h>
include<stdio.h>
include<string.h>
{
   char Chuoi[255],*s;
   printf("Nhap chuoi: ");gets(Chuoi);
   s=strstr(Chuoi,"hoc");
   printf("Chuoi trich ra: ");puts(s);
   getch();
   return 0;
}

So sánh chuỗi phân biệt chữ hoa chữ thường, hàm strcmp()

Hàm strcmp() trong C được sử dụng để so sánh 2 chuỗi. Nếu hàm strcmp(str1, str2) trả về 0 thì 2 chuỗi bằng nhau, lớn hơn 0 thì chuỗi str1 lớn hơn chuỗi str2 và ngược lại nếu nhỏ hơn 0 thì chuỗi str1 nhỏ hơn str2.

Hàm strcmp() phân biệt chữ hoa chữ thường.

Cú pháp: int strcmp(const char*s1, const char *s2)

Ví dụ

#include<conio.h>
#include<stdio.h>
#include<string.h>
int main()
{
    char  s1[]  = "tanchan679.com";
    char s2[] = "tanchan679.com";
    if(stricmp(s1,s2==0)) printf("2 chuoi bang nhau");
    else printf("Chuoi khong bang nhau");
}

So sánh chuỗi không phân biệt chữ hoa chữ thường, hàm stricmp()

Hàm này thực hiện việc so sánh 2 chuỗi s1 và s2, giữa chữ thường và chữ hoa không phân biệt.

Cú pháp: int stricmp(const char*s1, const char *s2)

Kết quả trả về tương tự như kết quả trả về của hàm strcmp()

Ví dụ

#include<conio.h>
#include<stdio.h>
#include<string.h>
int main()
{
    char  s1[]  = "tanchan679.com";
    char s2[] = "tanchan679.com";
    if(stricmp(s1,s2==0)) printf("2 chuoi bang nhau");
    else printf("Chuoi khong bang nhau");
}