Nhờ mọi người xem giúp hàm cắt chuỗi của mình sai ở đâu mà nó lại in ra kí tự lạ vậy nhỉ. Rõ ràng mình đã xét kí tự kết thúc chuỗi rồi. Mình cảm ơn.! Show Tổng hợp các hàm xử lý chuỗi trong lập trình C#. Một số hàm thông dụng về cách xử lý chuỗi linh hoạt hơn trong lập trình C# Mục lục ẩn 1. Khai báo chuỗi C# 2. Lấy chiều dài chuỗi C# 3. So sánh 2 chuỗi C# 4. Kiểm tra sự tồn tại của chuỗi 1 (Str1) trong chuỗi 2 (Str2) 5. Tìm vị trí hiển thị của chuỗi C# 6. Tìm vị trí xuất hiện cuối cùng của chuỗi C# 7. Kiểm tra xem chuỗi 1 (Str1) có bắt bầu bằng ký tự trong chuỗi 2 (Str2) không 8. Thay thế chuỗi C# 9. Cắt chuỗi con C# 10. Tách chuỗi C# 11. Chuyển chữ hoa sang chữ thường và ngược lại C# 12. Xóa chuỗi C#
Khai báo chuỗi C#string str ,str1,str2; // khai báo danh sách chuỗi str="hàm xử lý, xữ lý chuỗi c#"; //gán giá trị chuỗi str1="xử lý chuỗi 1"; str2="xử lý chuỗi 2";
Lấy chiều dài chuỗi C#str.Length
So sánh 2 chuỗi C#String.Compare(str1, str2, true) So sánh hai chuỗi không phân biệt hoa thường, str1 bằng, nhỏ hơn, lớn hơn str2 VD: Kiểm tra xem 2 chuỗi có giống nhau hay không if (String.Compare(str1, str2, true) == 0) { Console.Write("Giống nhau, không phân biệt hoa thường"); } else if (String.Compare(str1, str2, true) < 0) { Console.Write("str1 nhỏ hơn str2, không phân biệt hoa thường"); } String.Compare(str1, str2, false) Giống như trên, nhưng phân biệt chữ hoa và chữ thường.
Kiểm tra sự tồn tại của chuỗi 1 (Str1) trong chuỗi 2 (Str2)Str1.Contains(Str2)
Tìm vị trí hiển thị của chuỗi C#Str1.IndexOf("chuỗi") Hàm trả về vị trí xuất hiện đầu tiên của ký tự “chuỗi” trong Str1.
Tìm vị trí xuất hiện cuối cùng của chuỗi C#Str1.LastIndexOf("chuỗi") Hàm trả về vị trí xuất hiện cuối cùng của ký tự “chuỗi” trong Str1.
Kiểm tra xem chuỗi 1 (Str1) có bắt bầu bằng ký tự trong chuỗi 2 (Str2) khôngStr1.StartsWith(Str2)
Thay thế chuỗi C#Str = Str.Replace(",",".") Thay thế dấu ‘,’ thành dấu ‘.’ trong chuỗi Str. str.Length0 Thay thế chuỗi ‘xử lý’ thành chuỗi ”hàm chuỗi’ trong chuỗi Str.
Cắt chuỗi con C#str.Length1 Tạo chuỗi con từ chuỗi Str bắt đầu từ vị trí 2 đến hết. str.Length2 Cắt chuỗi từ vị trí đầu tiên(vị trí 0) đến vị trí số 6, kết quả là ‘hàm xử’.
Tách chuỗi C#str.Length3 Vd: //tách trong chuỗi str trên khi gặp ký tự ‘,’ str.Length4 //kết quả str.Length5 Hoặc: //tách trong chuỗi str trên khi gặp ký tự ‘,’ str.Length6 //kết quả str.Length7
Chuyển chữ hoa sang chữ thường và ngược lại C#str.Length8 Cắt hết khoảng trắng ở đầu và cuối chuỗi str.Length9 Cắt hết khoảng trắng ở đầu chuỗi String.Compare(str1, str2, true)0 Cắt hết khoảng trắng ở cuối chuỗi
Xóa chuỗi C#String.Compare(str1, str2, true)1 Xóa chuỗi Str1 từ vị trí 1 đến hết. String.Compare(str1, str2, true)2 Xóa 1 chuỗi con trong Str1 có chiều dài là 5. Từ vị trí 1 đến vị trí 5
Chúc các bạn thành công! Xử lý chuỗi là một công việc bắt buộc khi truyền nhận dữ liệu trong lập trình. Trong bài này chúng ta sẽ học cách sử dụng các hàm xử lý chuỗi nhé. Bài 18 trong Serie Học lập trình C từ A tới Z Mục Lục
Các hàm xử lý chuỗi trong cCó rất nhiều phương thức xử lý chuỗi quan trọng được định nghĩa trong thư viện <string.h>. No.Phương thứcMô 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. 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: #include<stdio.h> #include <string.h> 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; }4 Cách dùng: #include<stdio.h> #include <string.h> 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ả #include<stdio.h> #include <string.h> 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; }5 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 xử lý chuỗi Cú pháp: #include<stdio.h> #include <string.h> 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; }6 Cách dùng: #include<stdio.h> #include <string.h> 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ả #include<stdio.h> #include <string.h> 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; }7 Hàm strcpy chỉ sao chép dữ liệu từ mảng B[ ] sang mảng A[ ], nếu mảng A[ ] có kích thước nhỏ hơn mảng B[ ]thì sẽ xảy ra việc tràn dữ 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 đầu tiên. Cú pháp: #include<stdio.h> #include <string.h> 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; }8 Cách dùng #include<stdio.h> #include <string.h> 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ả #include<stdio.h> #include <string.h> 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; }9 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ề các giá trị tương ứng. Ta có 2 mảng s1[] và s2[]
Cú pháp:
Cách dùng: #include<stdio.h> #include <string.h> 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ự xuất hiện đầu tiên của chuỗi s2 trong chuỗi s1. Cú pháp: #include<stdio.h> #include <string.h> 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; }0 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. Cách dùng: #include<conio.h> #include<stdio.h> #include<string.h> 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 để 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) Cách dùng: #include<stdio.h> #include <string.h> 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 strlwrMuố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) Cách dùng: #include<stdio.h> #include <string.h> 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; }0 Kết quả #include<stdio.h> #include <string.h> 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; }1 Hàm strrev()Hàm strrev(string) trả về một chuỗi được đảo ngược Cách dùng: #include<stdio.h> #include <string.h> 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; }2 Kết quả #include<stdio.h> #include <string.h> 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; }3 KếtSử dụng các hàm xử lý chuỗi cũng rất đơn giản, chúng được cung cấp sẵn trong thư viện string, chúng ta chỉ cần lấy ra và sử dụng mà thôi. |