Hướng dẫn cách xóa chuỗi trong C. Bạn sẽ học được cách xóa 1 ký tự trong chuỗi C, cách xóa ký tự cuối cùng trong chuỗi, cũng như là cách xóa chuỗi con trong C sau bài học này.

Đang xem: Xóa ký tự trong chuỗi c++

Xóa ký tự trong chuỗi C

Trong ngôn ngữ C không tồn tại hàm có sẵn nào trong thư viện chuẩn giúp chúng ta xóa ký tự trong chuỗi C cả. Do đó chúng ta sẽ phải tự tạo hàm để giải quyết vấn đề này.

Để xóa 1 ký tự trong chuỗi C cũng khá đơn giản, chúng ta tạo ra một vòng lặp để lấy ra từng ký tự trong chuỗi ban đầu, và kiểm tra xem ký tự đó có giống với ký tự chỉ định cần xóa hay không.

Lúc này sẽ có 2 cách làm, một là kiểm tra từng ký tự trong chuỗi ban đầu và xóa đi nếu giống với ký tự cần xóa, và hai là kiểm tra và lấy các ký tự không giống ký tự cần xóa từ chuỗi ban đầu.

Dưới đây là hàm xóa ký tự trong chuỗi C thực hiện theo cách xóa ký tự thứ 2. Bạn cũng có thể tham khảo và thực hành viết cách 1 như là một bài luyện tập.

Xem thêm: Font Chữ Đồng Hồ Điện Tử Việt Hóa Đẹp Đẹp “Xiêu Lòng” Cho Thiết Kế In Ấn

char* pop_str(char* a, char chr, char* b){ int a_cnt; int b_cnt = 0; for ( a_cnt = 0; a != “”; ++a_cnt ) { if ( a != chr ) { b = a; ++b_cnt; } } b = “”; return b;}int main(void){ char a<50> = “abcdcde”; puts(a); char b<50>; char chr = “c”; puts(pop_str(a,chr,b)); return 0;}

Kết quả:

abcdcdeabdde

Xóa ký tự cuối trong chuỗi C

Để xóa ký tự cuối trong chuỗi C, chúng ta đơn giản dịch chuyển ký tự kết thúc chuỗi tiến về phía đầu chuỗi 1 đơn vị là xong.

Dưới đây là một hàm xóa chuỗi trong C sử dụng để xóa ký tự cuối cùng trong chuỗi.

char* pop_str_last(char* str){ const int len = strlen(str); if( len == 0 ) { return “”; } else { str = “”; return str; }}int main(void){ char a<50> = “abcdcde”; puts(a); puts(pop_str_last(a)); return 0;}

Kết quả:

abcdcdeabcdcd

Xóa chuỗi con trong C

Trong ngôn ngữ C không tồn tại hàm có sẵn nào trong thư viện chuẩn giúp chúng ta xóa chuỗi con trong C cả. Và tương tự ở trên thì chúng ta sẽ phải tự tạo hàm để giải quyết vấn đề này.

Ý tưởng ở đây là tất cả chúng ta tìm kiếm vị trí của chuỗi con trong chuỗi mẹ bằng hàm strstr ( ), sau đó tách chuỗi mẹ ra từ vị trí tìm thấy, và nối những phần này lại với nhau bằng hàm strcat ( ) .Chúng ta cũng cần một vòng lặp để hoàn toàn có thể tìm thấy tổng thể những chuỗi con cần xóa từ chuỗi mẹ .

Xem thêm:

Dưới đây là hàm xóa chuỗi con trong C:

char* pop_child_str(char* str1,char* str2){ const int len = strlen(str2); char str3<128> = “”; char *p1 = str1, *p2; while((p2 = strstr(p1,str2)) != NULL) { strncat(str3,p1,p2 – p1); p1 = p2 + len; } strcat(str3,p1); printf(“%s
“,str3); }int main(void){ char str1<128>, str2<128>; printf(“Nhap chuoi me: “); scanf(“%s”,str1); printf(“Nhap chuoi con can xoa: “); scanf(“%s”,str2); pop_child_str(str1,str2); return(0);}

Kết quả:

Nhap chuoi me: abcdebcNhap chuoi con can xoa: bcad

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn cách xóa chuỗi trong C rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu và khám phá những kỹ năng và kiến thức sâu hơn về C trong những bài học kinh nghiệm tiếp theo

Leave a Reply

Your email address will not be published. Required fields are marked *