Các hàm xử lý chuỗi trong lập trình C

Xử lý chuỗi là một việc làm bắt buộc khi truyền nhận tài liệu trong lập trình. Trong bài này tất cả chúng ta sẽ học cách sử dụng những hàm giải quyết và xử lý chuỗi nhé .
Bài 18 trong Serie Học lập trình C từ A tới Z

Các hàm giải quyết và xử lý chuỗi trong c

Có rất nhiều phương thức xử lý chuỗi quan trọng được định nghĩa trong thư viện .

No. Phương thức Mô tả
1. strlen(string_name) trả về chiều dài của chuỗi string_name.
2. strcpy(destination, source) sao chép nội dung của chuỗi source tới chuỗi destination.
3. strcat(first_string, second_string) nối chuỗi đầu tiên với chuối thứ hai. Kết quả được lưu vào chuỗi đầu tiên.
4. strcmp(first_string, second_string) so sánh chuỗi đầu tiên với chuỗi thứ hai. Nếu cả hai chuỗi đều giống nhau, nó sẽ trả về 0.
5. strrev(string) trả về chuỗi được đảo ngược.
6. strlwr(string) trả về chuỗi ký tự chữ thường.
7. strupr(string) trả về chuỗi ký tự chữ hoa.

xử lý chuỗi

Hàm strlen ( )

Hàm strlen() trả về chiều dài của chuỗi, nó không đếm ký tự null ‘\0’.

Cú pháp:

int strlen(const char* s)

Cách dùng: 

#include  
#include     
int main(){    
char ch[20]={'h', 'i', 'e', 'p', 's', 'i', 'i', 't', '.', 'c','o','m', '\0'};    
   printf("Length of string is: %d",strlen(ch));    
 return 0;    
}

Kết quả

Length of string is: 12

Hàm strcpy ( )

Sao chép nội dung của chuỗi source tới chuỗi destination. Đây là một hàm rất quan trọng khi giải quyết và xử lý chuỗi

Cú pháp:

char *strcpy(char *destination, const char *source)

Cách dùng:

#include  
#include     
int main(){    
 char ch[20]={'k', 'h', 'u', 'e', 'n', 'g', 'u', 'y', 'e', 'n','\0'};    
   char ch2[20];    
   strcpy(ch2,ch);    
   printf("Gia tri chuoi thu 2 la: %s",ch2);    
 return 0;    
}

Kết quả

Gia tri chuoi thu 2 la: khuenguyen

Hàm strcpy chỉ sao chép tài liệu từ mảng B [ ] sang mảng A [ ], nếu mảng A [ ] có size nhỏ hơn mảng B [ ] thì sẽ xảy ra việc tràn tài liệu của mảng A [ ] .

Hàm Strcat ( )

Dùng để nối 2 chuỗi. Kết quả được lưu vào chuỗi tiên phong .

Cú pháp:

char *strcat(char *des, const char *source)

Cách dùng

#include  
#include     
int main(){    
  char ch[10]={'h', 'e', 'l', 'l', 'o', '\0'};    
   char ch2[10]={' ', 'a','n','h',',' 'e','m','\0'};    
   strcat(ch,ch2);    
   printf("Gia tri cua chuoi dau tien la: %s",ch);    
 return 0;    
}

Kết quả

The value of the first string is: hello anh em

Hàm strcmp ( )

Dùng để so sánh hai chuỗi với nhau. Hàm sẽ so sánh hai chuỗi với nhau và trả về những giá trị tương ứng .
Ta có 2 mảng s1 [ ] và s2 [ ]

  • Nếu s1[] > s2[], kết quả trả về là 1
  • Nếu s1[] == s2[], kết quả trả về là 0
  • Nếu s1[] < s2[], kết quả trả về là -1

Cú pháp:

int strcmp ( const char * s1, const char * s2 )

Cách dùng:

#include  
#include     
int main(){    
  char str1[20],str2[20];    
  printf("Nhap chuoi 1: ");    
  gets(str1);//reads string from console    
  printf("Nhap chuoi 2: ");    
  gets(str2);    
  if(strcmp(str1,str2)==0)    
      printf("2 chuoi bang nhau");    
  else    
      printf("2 chuoi khong bang nhau");    
 return 0;    
}

Kết quả

Nhap chuoi 1 : hello
Nhap chuoi 2 : hello
2 chuoi bang nha

Hàm strstr ( )

Dùng để tìm kiếm sự Open tiên phong 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 thành phần tiên phong 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 .

Cách dùng:

#include 
#include  
#include 
 
void main() 
 
{ 
    char Chuoi[255],*s;      
    printf("Nhap chuoi: ");     
    gets(Chuoi);      
    s=strstr(Chuoi,"hoc");      
    printf("Chuoi trich ra: ");
    puts(s);      
    getch();     
}

Kết quả

Nhap chuoi: chuc cac ban hoc tap tot  
Chuoi trich ra: hoc tap tot

Hàm strupr ( )

Dùng để quy đổi chuỗi chữ thường thành chuỗi chữ hoa, tác dụng trả về của hàm là một con trỏ chỉ đến địa chỉ chuỗi được quy đổi .

Cú pháp:

char * strupr ( char * s )

Cách dùng: 

#include  
#include     
int main(){    
  char str[20];    
  printf("Nhap chuoi: ");    
  gets(str);//reads string from console    
  printf("Chuoi vua nhap: %s",str);    
  printf("\nChuyen sang chu hoa: %s",strupr(str));    
 return 0;    
}

Kết quả

Nhap chuoi: khue nguyen creator
Chuoi vua nhap: khue nguyen creator
Chuyen sang chu hoa: KHUE NGUYEN CREATOR

Hàm strlwr

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

Cú pháp:

char * strlwr ( char * s )

Cách dùng:

#include  
#include     
int main(){    
  char str[20];    
  printf("Nhap chuoi: ");    
  gets(str);//reads string from console    
  printf("Chuoi vua nhap: %s",str);    
  printf("\nChuyen sang chu thuong: %s",strlwr(str));    
 return 0;    
}

Kết quả

Nhap chuoi: KHUE NGUYEN creator
Chuoi vua nhap: KHUE NGUYEN creator
Chuyen sang chu thuong: khue nguyen creator

Hàm strrev ( )

Hàm strrev ( string ) trả về một chuỗi được đảo ngược

Cách dùng:

#include  
#include     
int main(){    
  char str[20];    
  printf("Nhap vao mot chuoi: ");    
  gets(str);//reads string from console    
  printf("Chuoi la: %s",str);    
  printf("\nChuoi bi dao nguoc la: %s",strrev(str));    
 return 0;    
}

Kết quả

Nhap vao mot chuoi: khue nguyen creator
Chuoi la: khue nguyen creator
Chuoi bi dao nguoc la: rotaerc neyugn euhk

Kết

Sử dụng những hàm giải quyết và xử lý chuỗi cũng rất đơn thuần, chúng được phân phối sẵn trong thư viện string, tất cả chúng ta chỉ cần lấy ra và sử dụng mà thôi .
Nếu thấy có ích hãy san sẻ bài viết và tham gia nhóm Nghiện Lập Trình để giao lưu và học hỏi nhé

5/5 – ( 1 bầu chọn )