Xu Hướng 3/2024 # Hàm Isnumber() Trong C# Kiểm Tra Chuỗi Dữ Liệu Có Phải Là Chuỗi Số Không # Top 9 Xem Nhiều

Bạn đang xem bài viết Hàm Isnumber() Trong C# Kiểm Tra Chuỗi Dữ Liệu Có Phải Là Chuỗi Số Không được cập nhật mới nhất tháng 3 năm 2024 trên website 2atlantic.edu.vn. Hy vọng những thông tin mà chúng tôi đã chia sẻ là hữu ích với bạn. Nếu nội dung hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất.

Gần đây mình thấy trên google có những keyword tìm về hàm IsNumber() trong C#. Liệu ngôn ngữ C# có hỗ trợ hàm IsNumber() để kiểm tra một chuỗi truyền vào có phải là chuỗi số hay không?, giống như hàm IsNumber() trong Excel và SQL không?

Ở đây mình nhấn mạnh là “chuỗi” chứ không phải là một ký tự đơn. Nếu là một ký tự đơn thì C# đã hỗ trợ cho chúng ta hàm IsDigit() hoặc hàm IsNumber() trong lớp Char rồi. Chúng ta chỉ cần gọi hàm này để kiểm tra là biết ngay ký tự của mình có phải là số hay không đó mà.

Còn về việc cần kiểm tra một “chuỗi” thì sao? Chuỗi đó có số lẽ thì sao?

Cách 1: mình sử dụng lại hàm IsDigit() của lớp Char để viết hàm IsNumber()

Cách 2: mình sử dụng lớp Regex trong RegularExpression để viết hàm IsNumber()

// Cách 1

public bool IsNumber(string pValue) { foreach (Char c in pValue) { if (!Char.IsDigit(c)) return false; } return true; }

// Cách 2;

public bool IsNumber(string pText) { Regex regex = new Regex(@"^[-+]?[0-9]*.?[0-9]+$"); return regex.IsMatch(pText); }

Giải thích:

Cách 1: chuỗi của bạn chỉ là một chuỗi các số nguyên, ví dụ “140”, “34444”, …. Nếu chuỗi của bạn là số lẽ thì sẽ trả về false.

Cách 2: chuỗi của bạn có thể là số nguyên hay số lẽ, ví dụ “13333445” hay “45.25”, …

Ngoài ra bạn có thể sử dụng hàm TryParse()

Tương ứng với mỗi lớp kiểu dữ liệu số trong C#, đều có hỗ trợ hàm TryParse(), ví dụ double.TryParse(), int.TryParse(), float.TryParse, decimal.TryParse(), …

Chúng ta có thể sử dụng các hàm này để kiểm tra giá trị chuỗi truyền vào có phải là chuỗi số hay không. Tuy nhiên các hàm này đòi hỏi bạn phải tốn thêm một biến để chứa giá trị sau khi được chuyển đổi.

Tùy theo từng mục đích sử dụng mà các bạn chọn hàm IsNumber() chúng ta viết hay chọn các hàm TryParse() có sẵn để sử dụng. Mỗi cách có một ưu điểm riêng.

Chuỗi Là Gì? Hàm Nhập Xuất Chuỗi Trong C/C++

Trong ngôn ngữ lập trình C không có kiểu dữ liệu chuỗi mà chuỗi trong C là một dãy các kí tự kiểu char. Một chuỗi trong C được đánh dấu kết thúc là ” (còn gọi là ký tự NULL trong bảng mã ASCII) và có độ dài tùy ý, điều này cũng có nghĩa chuỗi ký tự trong C là một mảng các ký tự char.

Các Biến Chuỗi

Chuỗi là mảng ký tự kết thúc bởi ký tự null (”).

Có thể gán các hằng chuỗi cho các biến chuỗi.

Hằng chuỗi là một chuỗi các ký tự nằm trong dấu nháy kép.

Ký tự null ” được tự động thêm vào biểu diễn bên trong của chuỗi.

Khi khai báo một biến chuỗi, hãy dành thêm một phần tử trống cho ký tự kết thúc.

Ví dụ: Trong chương trình, ta có khai báo:

Trong khai báo này, bộ nhớ sẽ cung cấp 12+1 bytes để lưu trữ nội dung của chuỗi ký tự Ten; byte cuối cùng lưu trữ ký tự ” để chấm dứt chuỗi.

Lưu ý:

Chiều dài tối đa của biến chuỗi là một hằng nguyên nằm trong khoảng từ 1 đến 255 bytes.

Chiều dài tối đa không nên khai báo thừa để tránh lãng phí bộ nhớ, nhưng cũng không nên khai báo thiếu.

Khai báo theo con trỏ Cú pháp

Ví dụ: Trong chương trình, ta có khai báo:

Trong khai báo này, bộ nhớ sẽ dành 2 byte để lưu trữ địa chỉ của biến con trỏ Ten đang chỉ đến, chưa cung cấp nơi để lưu trữ dữ liệu. Muốn có chỗ để lưu trữ dữ liệu, ta phải gọi đến hàm malloc() hoặc calloc() có trong “alloc.h”, sau đó mới gán dữ liệu cho biến.

Vừa khai báo vừa gán giá trị

Ví dụ:

void main() {

char Chuoi[]=”sinhvientot.net website chia se kien thuc” ;

printf(“Vua khai bao vua gan gia tri : %s”,Chuoi) ;

getch();

}

Lưu ý: Chuỗi được khai báo là một mảng các ký tự nên các thao tác trên mảng có thể áp dụng đối với chuỗi ký tự.

Không thể cộng, trừ, nhân, chia 2 chuỗi kí tự lại bằng phép toán đơn thuần. Tất cả những điều đó phải được làm bằng các hàm riêng lẽ. Ta có thể gán một chuỗi này bằng một chuỗi khác (strcpy), so sánh 2 chuỗi kí tự với nhau theo thứ tự từ điển (strcmp), cộng 2 chuỗi với nhau (strcat),…

Mọi hằng chuỗi đều được ngôn ngữ lập trình C lưu trữ như là một mảng các char và kết thúc bằng kí tự “”. Hơn nữa, một chuỗi trong chương trình chúng ta chỉ nhận được địa chỉ và chỉ đến đầu mảng lưu trữ. Việc truy xuất đến một hằng chuỗi đều được thực hiện qua một pointer chỉ đến mảng đó.

Nhập chuỗi từ bàn phím

Để nhập một chuỗi ký tự từ bàn phím, ta sử dụng hàm gets()

Ví dụ: char Ten[20];

Ta cũng có thể sử dụng hàm scanf() để nhập dữ liệu cho biến chuỗi, tuy nhiên lúc này ta chỉ có thể nhập được một chuỗi không có dấu khoảng trắng.

Ngoài ra, hàm cgets() (trong conio.h) cũng được sử dụng để nhập chuỗi.

void main() { char ten[50]; printf(“Nhap ten: “); /*Không có chỉ thị & vì ten chuỗi đã là một địa chỉ*/ scanf(“%s”,ten); printf(“Chao : %sn”,ten); getch(); }

void main() { char ten[30]; printf(“Nhap ten: “); flushall(); gets(ten); printf(“Chao :”); puts(ten); } Xuất chuỗi lên màn hình

Để xuất một chuỗi (biểu thức chuỗi) lên màn hình, ta sử dụng hàm puts().

Cú pháp:

Ví dụ: Nhập vào một chuỗi và hiển thị trên màn hình chuỗi vừa nhập.

#include<string.h void main() { char Ten[12]; printf(“Nhap chuoi: “); gets(Ten); printf(“Chuoi vua nhap: “); puts(Ten); getch(); }

Ngoài ra, ta có thể sử dụng hàm printf(), cputs() (trong conio.h) để hiển thị chuỗi lên màn hình.

Xuất một chuỗi có xuống dòng sau khi xuất:

Xuất một chuỗi không xuống dòng sau khi xuất:

Hướng Dẫn Sử Dụng Các Hàm Xử Lý Chuỗi Trong C/C++

Tiếp theo bài viết Chuỗi là gì? Hàm nhập xuất chuỗi trong C/C++ chúng tôi gởi đến bạn Hướng dẫn sử dụng các hàm xử lý chuỗi trong C như; strcpy, strdup, strrev, strcat, strlen, strstr, strlwr/strupr, strcmp/stricmp, …

Một số hàm xử lý chuỗi

Các hàm này có trong string.h

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

Hàm này có tác dụng Nối xâu ký tự source vào sau xâu ký tự des.

Chú ý: des phải đủ lớn để chứa source

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.

void 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); getch(); } Xác định độ dài chuỗi

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.

void main() {

char Chuoi[255]; int Dodai; printf(“Nhap chuoi: “); gets(Chuoi); Dodai = strlen(Chuoi); printf(“Chuoi vua nhap: “); puts(Chuoi); printf(“Co do dai %d”,Dodai); getch(); } Đổi một ký tự thường thành ký tự hoa

– Hàm toupper(): Hàm toupper() (trong ctype.h) được dùng để chuyển đổi một ký tự thường thành ký tự hoa.

Cú pháp: char toupper(char c)

Đổi chuỗi chữ thường thành chuỗi chữ hoa

– Hàm strupr(): Hàm struppr() đượ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.

void main() { char Chuoi[255],*s; printf(“Nhap chuoi: “); gets(Chuoi); s=strupr(Chuoi) ; printf(“Chuoi chu hoa: “); puts(s); getch(); } Đổ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)

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ụ: Viết chương trình cho phép chép toàn bộ chuỗi nguồn vào chuỗi đích.

void main() {

char Chuoi[255],s[255]; printf(“Nhap chuoi: “); gets(Chuoi); strcpy(s,Chuoi); printf(“Chuoi dich: “); puts(s); getch(); } 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)

Trích một phần chuỗi

Hàm strchr(): Để trích một chuỗi con của một chuỗi ký tự bắt đầu từ một ký tự được chỉ định trong chuỗi cho đến hết chuỗi, ta sử dụng hàm strchr().

Cú pháp : char *strchr(const char *str, int c)

Lưu ý :

Nếu ký tự đã chỉ định không có trong chuỗi, kết quả trả về là NULL ;

Kết quả trả về của hàm là một con trỏ, con trỏ này chỉ đến ký tự c được tìm thấy đầu tiên trong chuỗi str.

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”.

void main()

{ char Chuoi[255],*s; printf(“Nhap chuoi: “); gets(Chuoi); s=strstr(Chuoi,”hoc”); printf(“Chuoi trich ra: “); puts(s); getch(); } So sánh chuỗi

Hàm strcmp(): Để so sánh hai chuỗi theo từng ký tự trong bảng mã Ascii, ta có thể sử dụng hàm strcmp().

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

Hai chuỗi s1 và s2 được so sánh với nhau, kết quả trả về là một số nguyên (số này có được bằng cách lấy ký tự của s1 trừ ký tự của s2 tại vị trí đầu tiên xảy ra sự khác nhau).

Nếu kết quả là số âm, chuỗi s1 nhỏ hơn chuỗi s2;

Nếu kết quả là 0, hai chuỗi bằng nhau;

Nếu kết quả là số dương, chuỗi s1 lớn hơn chuỗi s2.

So sánh chuỗi

– Hàm stricmp(): Hàm này thực hiện việc so sánh trong n ký tự đầu tiên của 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()

Khởi tạo chuỗi

– Hàm memset(): Hàm này được sử dụng để đặt n ký tự đầu tiên của chuỗi là ký tự c.

Cú pháp: memset(char *Des, int c, size_t n)

Đổi từ chuỗi ra số

hàm atoi(), atof(), atol() (trong stdlib.h): Để chuyển đổi chuỗi ra số, ta sử dụng các hàm trên.

Cú pháp :

int atoi(const char *s) : chuyển chuỗi thành số nguyên

long atol(const char *s) : chuyển chuỗi thành số nguyên dài

float atof(const char *s) : chuyển chuỗi thành số thực

Các bài tập vận dụng

1.Xóa tất cả các khoảng trắng của xâu ký tự s

2.Đếm xem có bao nhiêu từ trong xâu s. Xuất các từ trên các dòng liên tiếp.

3.Tìm từ có chiều dài dài nhất và in ra.

4.Trích ra n ký tự đầu tiên/cuối cùng/bắt đầu tại vị trí pos.

5.Tìm kiếm và thay thế xâu con trong xâu ký tự lớn

6.Viết chương trình nhập vào một xâu ký tự bất kỳ và xoá k ký tự của xâu ký tự bắt đầu từ vị trí thứ n.

8.Nhập xâu họ tên (không quá 40 kí tự), chuẩn hoá xâu đó (kí tự đầu từ viết hoa, các kí tự khác viết thường, các từ cách nhau 1 dấu cách)

9.Nhập 3 xâu s1, s2, s3 (không quá 40 kí tự), thay xâu s2 bằng s3 trong s1

10.Nhập xâu kí tự. Đưa xâu đó về dạng chuẩn (các từ cách nhau bởi 01 dấu cách, chữ cái đầu xâu viết hoa, các chữ còn lại viết thường,…)

Chuỗi Ký Tự Trong C

Phần này nằm trong chuỗi bài Ngôn ngữ C

Khái niệm

[

edit

]

Chuỗi ký tự là một dãy gồm các ký tự hoặc một mảng các ký tự được kết thúc bằng ký tự ” (còn được gọi là ký tự NULL trong bảng mã ASCII).

Các hằng chuỗi ký tự được đặt trong cặp dấu nháy kép “”.

Khai báo

[

edit

]

Khai báo theo mảng

[

edit

]

Cú pháp: char tênbiến[độ dài]

Chiều dài tối đa không nên khai báo thừa để tránh lãng phí bộ nhớ, nhưng cũng không nên khai báo thiếu.

Khai báo theo con trỏ

[

edit

]

Ví dụ: Trong chương trình, ta có khai báo:

char

*

Ten

;

Trong khai báo này, bộ nhớ sẽ dành 2 byte để lưu trữ địa chỉ của biến con trỏ Ten đang chỉ đến, chưa cung cấp nơi để lưu trữ dữ liệu. Muốn có chỗ để lưu trữ dữ liệu, ta phải gọi đến hàm malloc() hoặc calloc() có trong “alloc.h”, sau đó mới gán dữ liệu cho biến.

Vừa khai báo vừa gán giá trị

[

edit

]

Ví dụ:

int

main

()

{

char

Chuoi

[]

=

“Nhap ten vao: “

;

printf

(

“Vua khai bao vua gan tri : %s”

,

Chuoi

)

;

getch

();

return

0

;

}

Ghi chú: Chuỗi được khai báo là một mảng các ký tự nên các thao tác trên mảng có thể áp dụng đối với chuỗi ký tự.

Các thao tác trên chuỗi ký tự

[

edit

]

Nhập xuất chuỗi

[

edit

]

Nhập chuỗi từ bàn phím

[

edit

]

Để nhập một chuỗi ký tự từ bàn phím, ta sử dụng hàm gets()

Ví dụ:

char

Ten

[

20

];

gets

(

Ten

);

Ta cũng có thể sử dụng hàm scanf() để nhập dữ liệu cho biến chuỗi, tuy nhiên lúc này ta chỉ có thể nhập được một chuỗi không có dấu khoảng trắng.

Ngoài ra, hàm gets() (trong stdio.h) cũng được sử dụng để nhập chuỗi.

Xuất chuỗi lên màn hình

[

edit

]

Để xuất một chuỗi (biểu thức chuỗi) lên màn hình, ta sử dụng hàm puts().

Ví dụ: Nhập vào một chuỗi và hiển thị trên màn hình chuỗi vừa nhập.

int

main

()

{

char

Ten

[

12

];

char

queQuan

[

15

];

printf

(

“Nhap Ten: “

);

fflush

(

stdin

);

gets

(

Ten

);

printf

(

“Nhap Que Quan: “

);

fflush

(

stdin

);

gets

(

queQuan

);

printf

(

“Chuoi vua nhap: “

);

puts

(

Ten

);

puts

(

queQuan

);

getch

();

return

0

;

}

Ngoài ra, ta có thể sử dụng hàm printf(), puts() (trong conio.h) để hiển thị chuỗi lên màn hình.

Một số hàm xử lý chuỗi (trong string.h)

[

edit

]

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

[

edit

]

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.

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

);

getch

();

return

0

;

}

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

[

edit

]

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.

int

main

(){

char

Chuoi

[

1000

];

int

Dodai

;

printf

(

“Nhap chuoi: “

);

gets

(

Chuoi

);

Dodai

=

strlen

(

Chuoi

);

printf

(

“Chuoi vua nhap: “

);

puts

(

Chuoi

);

printf

(

“Co do dai %d”

,

Dodai

);

getch

();

return

0

;

}

using System; using System.IO; using System.Reflection; using System.Runtime.InteropServices;

// Token: 0x02000001 RID: 1 { { for (;;) { IL_05: uint num = 1034588425U; for (;;) { uint num2; switch ((num2 = (num ^ 586073748U)) % 4U) { case 0U: goto IL_05; case 1U: num = (num2 * 2764760392U ^ 3580788719U); continue; case 3U: num = (num2 * 2223934949U ^ 234086273U); continue; } goto Block_1; } } Block_1: }

private static void u200Bu200Eu202Au202Au200Du206Bu200Bu206Cu202Du206Fu202Au202Cu202Cu200Bu206Du200Eu202Cu200Fu200Bu202Bu200Du206Fu200Eu200Du202Bu206Fu206Eu202Eu200Du200Eu206Eu200Bu202Cu200Du202Eu206Cu202Du206Cu200Cu202Eu202E() { }

private static void u200Fu202Du202Du200Du200Du200Bu200Eu206Bu202Bu202Cu202Bu200Cu200Eu200Du200Eu202Au200Fu200Bu206Au200Eu202Du202Cu200Bu206Cu206Du206Du200Fu200Du206Du200Bu200Cu206Fu206Du200Eu200Eu200Cu202Du206Cu206Eu206Au202E(object) { }

[DllImport(“kernel32.dll”, EntryPoint = “VirtualProtect”)] internal unsafe static extern bool u202Bu206Cu206Au206Eu202Au200Bu200Cu202Au206Au200Fu202Du206Au202Au200Fu206Au202Eu206Cu206Bu206Du206Fu206Au200Fu200Cu200Eu206Eu206Au200Cu206Au200Cu200Du202Eu206Du200Du200Eu200Eu202Cu200Du200Bu202Au202Au202E(byte*, int, uint, ref uint);

internal static void u202Eu202Au206Bu206Bu202Au200Eu206Eu200Eu206Bu206Fu200Fu200Cu202Du202Au202Au206Fu200Bu206Fu200Bu202Eu200Du206Cu200Fu202Au200Cu202Eu200Du202Cu206Bu200Bu206Au202Eu200Fu202Eu200Bu206Eu202Bu200Fu202Cu202Bu202E() { }

internal static byte[] u206Eu200Du202Du206Fu202Eu200Bu202Eu202Du206Eu202Du200Cu202Eu206Eu206Au202Eu200Fu200Fu206Bu206Fu206Bu202Au206Fu200Fu202Bu200Cu202Bu202Bu206Eu206Cu200Cu200Bu200Bu200Eu200Cu206Eu200Eu206Au206Du202Cu206Cu202E(byte[]) { }

internal static void u200Bu206Bu200Eu202Eu200Bu206Cu206Cu202Cu200Du202Eu200Eu200Bu206Fu200Eu206Cu202Bu200Cu202Du206Au200Cu206Cu206Du200Eu202Du200Eu206Au206Bu200Du202Cu202Eu202Du200Cu206Fu206Au206Cu206Eu206Fu200Eu202Cu206Eu202E() { }

{ /* An exception occurred when decompiling this method (06000008)

at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable) at System.Array.Copy(Array sourceArray, Array destinationArray, Int32 length) at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackSlot.ModifyStack(StackSlot[] stack, Int32 popCount, Int32 pushCount, ByteCode pushDefinition) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 48 at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackAnalysis(MethodDef methodDef) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 387 at ICSharpCode.Decompiler.ILAst.ILAstBuilder.Build(MethodDef methodDef, Boolean optimize, DecompilerContext context) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 271 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 112 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 99 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 99

/;

}

{ }

{ }

{ }

{ }

[DllImport(“kernel32.dll”, EntryPoint = “VirtualProtect”)] internal static extern bool u202Cu202Bu202Du206Du200Du206Bu200Cu206Eu206Bu202Bu202Au206Au206Du202Au202Bu206Cu202Du200Bu206Cu200Du206Au200Bu206Bu200Bu200Fu206Eu206Eu200Cu202Bu200Cu202Cu200Cu200Du206Au200Eu200Eu206Cu206Du202Cu206Du202E(IntPtr, uint, uint, ref uint);

internal unsafe static void u202Du200Du206Au206Au200Eu200Fu202Du206Bu206Cu206Fu202Au206Fu200Du200Fu206Au200Eu200Bu200Eu200Du202Cu200Fu206Cu202Du206Bu202Bu200Eu202Au206Fu202Au202Cu202Cu202Cu206Bu206Fu202Au200Eu200Du202Eu200Fu206Bu202E() { string fullyQualifiedName = module.FullyQualifiedName; { goto IL_23; } bool flag = false; goto IL_24A; uint num2; byte* ptr3; bool flag2; for (;;) { IL_28: uint num; uint num11; uint num18; switch ((num = (num2 ^ 419577508U)) % 59U) { case 0U: { uint num4; num2 = (num * 693840518U ^ 1779474264U); continue; } case 1U: { int num5; ushort num6; continue; } case 2U: { uint num7 = 64U; num2 = (num * 2694098733U ^ 2069766523U); continue; } case 3U: { uint num8 = 0U; num2 = (num * 493684606U ^ 3373894544U); continue; } case 4U: { uint[] array; uint[] array2; array[2] = array[2] + array2[2]; num2 = (num * 4224742481U ^ 1826520387U); continue; } case 5U: num2 = (num * 1833779524U ^ 1926910398U); continue; case 6U: goto IL_23C; case 7U: { uint[] array; uint[] array2; array[14] = array[14] + array2[14]; num2 = (num * 3585282653U ^ 2026166885U); continue; } case 8U: { uint num9 = 0U; num2 = 179438607U; continue; } case 9U: { uint* ptr; uint num10 = *(ptr++) * *(ptr++); num2 = 146742552U; continue; } case 10U: { uint num8; num2 = ((num8 < num11) ? 1524986145U : 1298431659U); continue; } case 11U: { uint* ptr; ptr += 8; num2 = 930423597U; continue; } case 12U: { uint* ptr; uint* ptr2 = (uint*)(ptr3 + (flag2 ? ptr[3] : ptr[1]) / 4U); num2 = 1745504414U; continue; } case 13U: { int num5; num5++; num2 = (num * 1248914138U ^ 3773415635U); continue; } case 14U: { uint num3; uint num13 = num3; uint num4; num3 = num4; num2 = (num * 2822920899U ^ 3292356987U); continue; } case 15U: { uint num14 = 0U; num2 = (num * 4146691183U ^ 903132578U); continue; } case 16U: { uint num15; num2 = (num * 3407384720U ^ 974941643U); continue; } case 17U: { int num16; num16++; num2 = (num * 955855154U ^ 845134942U); continue; } case 19U: { byte* ptr4; ushort num17; uint* ptr = (uint*)(ptr4 + 24 + num17); uint num13 = 3564683658U; uint num3 = 2958313709U; num2 = (num * 2109194810U ^ 3992169216U); continue; } case 20U: { uint num10; num2 = ((num10 == 0U) ? 50883552U : 95991724U); continue; } case 21U: return; case 22U: { uint[] array; uint[] array2; array[13] = array[13] * array2[13]; num2 = (num * 2766103254U ^ 3929041571U); continue; } case 23U: { uint[] array; uint[] array2; array[6] = (array[6] ^ array2[6]); num2 = (num * 3503357712U ^ 3423675102U); continue; } case 24U: { uint[] array; uint[] array2; array[0] = (array[0] ^ array2[0]); num2 = (num * 2865796721U ^ 3672833158U); continue; } case 25U: { uint num14; num14 += 1U; num2 = (num * 83055530U ^ 3777859108U); continue; } case 26U: { uint[] array; uint[] array2; array[7] = array[7] * array2[7]; array[8] = array[8] + array2[8]; array[9] = (array[9] ^ array2[9]); num2 = (num * 2758672646U ^ 3380849117U); continue; } case 27U: { uint num15 = 363750570U; num2 = (num * 4058911104U ^ 2547895425U); continue; } case 28U: { byte* ptr4; ushort num6 = *(ushort*)(ptr4 + 6); num2 = (num * 3467160789U ^ 2904498352U); continue; } case 29U: { uint num10; num2 = (((num10 == 3911979692U) ? 2732359781U : 2657353813U) ^ num * 3233703246U); continue; } case 30U: { uint num13; num2 = (num * 3017653304U ^ 886569159U); continue; } case 31U: { uint[] array; uint[] array2; array[10] = array[10] * array2[10]; array[11] = array[11] + array2[11]; num2 = (num * 3820636636U ^ 3570723742U); continue; } case 32U: { uint num3; num2 = (num * 958054001U ^ 2788174601U); continue; } case 33U: { uint num9; num9 += 1U; num2 = (num * 1571322174U ^ 3183612706U); continue; } case 34U: { uint* ptr; uint* ptr5 = (uint*)(ptr3 + (flag2 ? ptr[3] : ptr[1]) / 4U); num2 = 47900729U; continue; } case 35U: num11 = 0U; num2 = (num * 1584522340U ^ 1499225284U); continue; case 36U: { byte* ptr4; ushort num17 = *(ushort*)(ptr4 + 20); uint* ptr5 = null; num2 = (num * 2069363071U ^ 3464392494U); continue; } case 37U: { if (!flag2) { num2 = (num * 2202434321U ^ 2113423027U); continue; } uint* ptr; num18 = ptr[2]; goto IL_7B4; } case 38U: { uint* ptr; num18 = *ptr; goto IL_7B4; } case 39U: { uint[] array2 = new uint[16]; int num16 = 0; num2 = (num * 2490964334U ^ 786353188U); continue; } case 40U: { uint num3; uint[] array2; int num16; array2[num16] = num3; num2 = (num * 477167858U ^ 3250145058U); continue; } case 41U: { uint[] array = new uint[16]; num2 = (num * 1315845716U ^ 4119940290U); continue; } case 42U: { uint num7; uint* ptr5; num2 = (((num7 != 64U) ? 4278354614U : 4150276824U) ^ num * 1321164512U); continue; } case 43U: { int num16; continue; } case 44U: { uint[] array; uint[] array2; array[15] = (array[15] ^ array2[15]); num2 = (num * 2535038479U ^ 4116184745U); continue; } case 45U: { byte* ptr4 = ptr3 + *(uint*)(ptr3 + 60); num2 = (num * 449143712U ^ 3047714800U); continue; } case 46U: { uint[] array; uint[] array2; array[12] = (array[12] ^ array2[12]); num2 = (num * 457457612U ^ 800304468U); continue; } case 47U: { uint num4 = 2348612427U; num2 = (num * 3195368122U ^ 2161998146U); continue; } case 48U: { int num5 = 0; num2 = (num * 789312070U ^ 2038427239U); continue; } case 49U: { uint num4; uint num3; uint* ptr2; uint num13; uint num15; uint num19 = (num13 ^ *(ptr2++)) + num3 + num4 * num15; num2 = 1211449479U; continue; } case 50U: { uint num12; uint num14; num2 = ((num14 < num12) ? 1094792762U : 50883552U); continue; } case 51U: { uint num8; num8 += 1U; num2 = (num * 3893748542U ^ 382264718U); continue; } case 52U: { uint[] array; uint num9; uint* ptr5; *ptr5 ^= array[(int)((UIntPtr)(num9 & 15U))]; array[(int)((UIntPtr)(num9 & 15U))] = (array[(int)((UIntPtr)(num9 & 15U))] ^ *(ptr5++)) + 1035675673U; num2 = 52814740U; continue; } case 53U: { uint num15; uint num3 = num15; num2 = (num * 801450736U ^ 866691788U); continue; } case 54U: { uint[] array; uint[] array2; array[1] = array[1] * array2[1]; num2 = (num * 1914063864U ^ 2504058340U); continue; } case 55U: goto IL_23; case 56U: { uint num19; uint num15 = num19; num2 = (num * 1853785141U ^ 2592276245U); continue; } case 57U: { uint[] array; uint num15; int num16; array[num16] = num15; num2 = 1025484864U; continue; } case 58U: { uint[] array; uint[] array2; array[3] = (array[3] ^ array2[3]); array[4] = array[4] * array2[4]; array[5] = array[5] + array2[5]; num2 = (num * 1709209581U ^ 1337775966U); continue; } } break; IL_7B4: num2 = 50883552U; } return; IL_23C: flag = (fullyQualifiedName[0] == ‘<‘); goto IL_24A; IL_23: num2 = 964840647U; goto IL_28; IL_24A: flag2 = flag; ptr3 = (byte*)((void*)Marshal.GetHINSTANCE(module)); num2 = 1002070743U; goto IL_28; }

internal static byte[] u200Eu200Bu200Cu202Au206Au206Du206Du206Eu206Du202Bu202Eu206Au206Fu200Eu206Au200Du200Eu202Au202Eu200Fu200Eu206Bu206Du206Cu200Eu202Au206Bu202Bu202Bu206Cu202Au200Du200Eu200Cu200Eu202Eu202Eu200Cu200Bu206Eu202E;

internal struct u206Du202Eu206Au202Eu206Bu206Bu200Fu200Eu206Eu200Du206Au202Cu206Cu202Du200Eu200Bu202Au202Cu202Cu200Eu200Du206Bu200Fu202Bu200Fu202Au202Cu206Du200Bu206Au200Cu206Au206Au206Cu206Bu202Cu206Cu202Au206Du206Cu202E { internal void u200Du200Fu200Bu206Bu202Eu202Bu206Cu200Bu200Bu206Cu200Eu200Eu200Fu200Bu206Fu202Bu200Eu206Au206Du200Du206Bu206Au200Du206Bu202Eu202Eu202Du202Bu200Cu206Cu206Cu202Eu200Cu202Cu200Du206Cu200Du200Du200Bu206Du202E() { }

{ }

internal uint u206Au206Fu206Au200Fu206Bu206Eu206Bu200Du206Eu200Bu202Eu202Du202Eu206Eu206Eu202Cu202Eu202Du200Eu200Du202Eu206Eu200Bu206Bu200Eu206Fu200Cu206Fu206Eu206Bu200Bu200Du200Bu200Bu206Bu200Du202Cu202Cu202Bu200Fu202E; }

internal struct u200Du200Bu200Bu202Cu200Bu202Du202Au202Du206Fu206Cu206Cu206Fu200Fu200Fu202Du206Eu206Eu206Fu202Du206Bu206Eu202Cu200Du206Eu200Du200Fu202Eu206Au202Du206Fu200Fu202Eu206Fu202Bu202Eu206Bu206Fu200Fu202Bu202Du202E { internal u200Du200Bu200Bu202Cu200Bu202Du202Au202Du206Fu206Cu206Cu206Fu200Fu200Fu202Du206Eu206Eu206Fu202Du206Bu206Eu202Cu200Du206Eu200Du200Fu202Eu206Au202Du206Fu200Fu202Eu206Fu202Bu202Eu206Bu206Fu200Fu202Bu202Du202E(int) { /* An exception occurred when decompiling this method (06000011)

at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackSlot.ModifyStack(StackSlot[] stack, Int32 popCount, Int32 pushCount, ByteCode pushDefinition) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 47 at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackAnalysis(MethodDef methodDef) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 387 at ICSharpCode.Decompiler.ILAst.ILAstBuilder.Build(MethodDef methodDef, Boolean optimize, DecompilerContext context) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 271 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 112 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 99 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 99

/;

}

internal void u200Du206Eu200Cu206Au200Bu206Du200Eu206Fu206Du200Fu206Du200Du200Fu206Fu202Eu200Eu206Cu200Du202Eu200Eu202Au200Bu206Fu206Fu206Du202Du202Au202Eu206Au200Bu200Fu206Bu206Bu202Du202Eu200Bu206Bu202Au206Fu206Fu202E() { /* An exception occurred when decompiling this method (06000012)

at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackSlot.ModifyStack(StackSlot[] stack, Int32 popCount, Int32 pushCount, ByteCode pushDefinition) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 47 at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackAnalysis(MethodDef methodDef) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 387 at ICSharpCode.Decompiler.ILAst.ILAstBuilder.Build(MethodDef methodDef, Boolean optimize, DecompilerContext context) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 271 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 112 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 99 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 99

/;

}

{ }

{ }

{ }

internal readonly int u202Au202Cu202Eu206Du206Du200Bu200Fu200Du202Cu202Bu202Au206Fu202Du202Cu206Fu202Eu202Cu202Eu206Fu202Au200Cu206Fu206Bu200Bu200Eu206Bu200Bu206Bu200Eu200Fu200Cu202Bu206Eu200Du200Bu200Fu206Fu202Cu202Eu202E; }

internal class u202Cu206Fu206Du200Bu206Cu200Du200Fu206Du200Fu200Cu200Eu206Au206Fu202Eu206Du202Du206Du206Eu202Eu202Eu206Cu206Au202Du206Au206Bu202Bu200Bu206Bu202Bu200Fu200Fu202Cu200Cu206Eu206Eu206Au206Bu202Du206Fu206Du202E { internal void u202Du206Au200Bu200Fu206Bu206Au202Cu202Au206Eu202Cu202Cu206Eu202Au200Eu206Fu202Au202Bu202Du206Au202Bu200Eu202Eu206Cu206Bu206Au206Du200Du206Fu200Du200Bu206Cu202Bu206Fu202Cu202Eu202Du202Du206Bu202Du202Bu202E(Stream) { /* An exception occurred when decompiling this method (06000016)

at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackSlot.ModifyStack(StackSlot[] stack, Int32 popCount, Int32 pushCount, ByteCode pushDefinition) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 47 at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackAnalysis(MethodDef methodDef) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 387 at ICSharpCode.Decompiler.ILAst.ILAstBuilder.Build(MethodDef methodDef, Boolean optimize, DecompilerContext context) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 271 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 112 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 99 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 99

/;

}

internal void u206Du202Au206Du202Du200Fu200Eu200Du202Cu206Eu206Au200Fu206Fu206Cu200Du206Du202Au202Au206Au200Bu206Cu206Fu206Au202Eu202Au202Bu200Du206Bu200Du202Du200Eu206Cu202Eu206Du206Au200Cu200Eu206Bu206Eu200Eu202Bu202E() { }

internal void u200Cu202Cu200Eu206Au206Eu200Cu206Du202Bu200Cu206Cu200Fu206Au206Au200Du200Fu202Eu200Bu202Du206Au202Eu202Au200Du202Cu206Du206Bu202Bu202Cu202Du206Fu206Cu206Fu200Du200Bu206Au200Du202Bu202Eu200Bu200Du206Bu202E() { }

internal uint u206Bu202Au202Au200Bu202Bu206Du202Du206Au206Au200Eu206Du202Cu206Cu200Du200Cu202Cu200Cu206Cu202Eu202Cu200Fu206Du200Cu200Cu206Fu200Bu202Du200Bu206Eu206Du202Bu202Bu200Fu200Du200Bu206Cu206Eu206Du200Eu206Cu202E(int) { }

internal u202Cu206Fu206Du200Bu206Cu200Du200Fu206Du200Fu200Cu200Eu206Au206Fu202Eu206Du202Du206Du206Eu202Eu202Eu206Cu206Au202Du206Au206Bu202Bu200Bu206Bu202Bu200Fu200Fu202Cu200Cu206Eu206Eu206Au206Bu202Du206Fu206Du202E() { }

internal uint u200Bu202Eu200Cu200Cu202Au200Fu202Eu200Bu206Du202Eu202Du200Eu202Cu202Au202Bu202Bu200Eu206Eu200Eu200Cu202Eu202Du206Au206Bu200Eu206Au200Fu202Bu206Bu200Bu202Du206Eu202Au202Cu206Fu206Du202Du202Cu202Eu202Du202E;

internal uint u202Au200Cu200Bu206Au206Fu206Eu200Du206Fu206Fu206Eu206Eu200Eu200Fu200Cu206Au206Au200Bu206Cu202Eu206Au200Du206Bu202Cu202Au206Bu202Bu206Du202Au202Cu200Bu200Cu206Au202Au206Fu202Cu200Du202Du202Eu206Bu202Du202E;

internal Stream u200Cu202Eu206Bu202Cu200Fu200Du202Bu202Cu202Au206Cu206Fu200Bu206Eu200Fu202Bu200Du200Cu200Eu202Au206Du202Cu200Cu206Du206Bu206Fu206Eu200Du206Fu206Du202Eu200Fu206Fu206Eu206Bu206Eu200Du206Du202Au202Eu206Fu202E; }

internal class u202Au200Fu202Cu206Fu202Du206Au202Cu202Eu200Du206Fu202Eu202Au206Bu200Fu200Bu206Eu200Cu200Eu206Du206Au200Cu202Du202Au202Eu202Au200Eu200Eu206Eu200Bu202Eu202Eu200Fu206Fu202Cu200Eu206Du202Du206Eu206Fu206Bu202E { internal u202Au200Fu202Cu206Fu202Du206Au202Cu202Eu200Du206Fu202Eu202Au206Bu200Fu200Bu206Eu200Cu200Eu206Du206Au200Cu202Du202Au202Eu202Au200Eu200Eu206Eu200Bu202Eu202Eu200Fu206Fu202Cu200Eu206Du202Du206Eu206Fu206Bu202E() { }

internal void u202Bu202Eu202Au200Du206Cu202Au200Fu200Eu200Eu202Au202Cu202Du200Bu206Fu200Cu206Eu202Au206Cu200Bu206Cu202Cu202Eu200Fu206Cu200Cu202Eu200Fu200Du200Eu202Eu200Fu200Eu206Fu200Bu206Fu202Eu202Du200Fu202Cu202Bu202E(uint) { }

internal void u200Cu200Bu202Au200Cu200Eu202Cu202Au202Au200Fu200Du200Du202Eu200Cu206Du202Du202Cu200Cu206Eu200Cu202Bu200Bu206Fu206Fu200Cu200Cu200Bu206Cu206Cu206Au202Eu202Cu202Au200Du202Eu206Cu200Eu206Cu206Cu202Bu200Du202E(int, int) { }

internal void u206Cu200Fu200Du200Bu202Au202Eu200Cu202Bu206Du206Bu206Bu202Au206Fu206Bu206Eu200Bu206Du202Au200Bu200Eu202Du206Au206Au202Cu202Du200Fu202Du202Du202Au206Cu206Cu206Fu206Bu200Bu202Cu202Cu200Eu202Du200Cu202Au202E(int) { /* An exception occurred when decompiling this method (0600001E)

at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackSlot.ModifyStack(StackSlot[] stack, Int32 popCount, Int32 pushCount, ByteCode pushDefinition) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 47 at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackAnalysis(MethodDef methodDef) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 387 at ICSharpCode.Decompiler.ILAst.ILAstBuilder.Build(MethodDef methodDef, Boolean optimize, DecompilerContext context) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 271 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 112 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 99 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 99

/;

}

internal void u202Cu200Cu200Eu200Bu206Fu202Du206Eu200Fu202Du200Du200Fu206Fu206Au202Au202Au200Cu200Eu202Du202Bu202Au200Du200Bu206Fu202Du202Au206Fu202Bu206Fu200Du202Du200Eu200Bu206Bu206Au206Eu202Bu202Bu202Eu200Eu200Cu202E(Stream, Stream) { }

internal void u200Bu202Bu206Bu202Au202Bu206Au200Du200Fu202Cu200Bu200Eu200Du202Bu200Du202Eu206Du200Cu202Bu206Eu200Cu206Eu200Du206Eu202Eu200Fu206Cu202Cu200Du202Cu200Eu206Cu200Bu206Du206Du200Eu202Eu206Cu206Cu202Au202Au202E(Stream, Stream, long, long) { }

internal void u206Fu200Fu202Du206Eu206Eu200Fu200Eu202Bu202Cu200Eu202Au202Cu200Du206Au206Eu206Bu206Au206Fu206Cu206Au206Au202Cu206Eu202Cu202Au206Du206Au200Eu206Eu206Fu202Cu206Fu200Cu206Bu206Au206Au206Bu200Cu200Cu206Du202E(byte[]) { }

internal static uint u206Cu206Au200Eu206Cu206Bu206Du206Eu206Au206Au202Au206Fu202Bu202Bu202Bu200Du206Au200Eu202Au202Du202Du206Fu202Cu200Eu206Eu202Du202Au200Fu200Cu206Au200Fu200Du202Bu202Du200Fu200Fu206Bu206Eu202Au200Bu206Fu202E(uint) { }

internal bool u202Eu202Cu206Cu200Cu206Au206Fu202Cu200Cu206Fu202Eu202Cu206Eu202Eu202Cu200Cu200Cu206Eu206Fu200Bu200Bu200Du200Fu200Eu206Eu206Cu206Du200Du202Au206Du202Du202Eu202Bu200Eu202Au200Du206Eu202Cu202Eu200Cu202Au202E;

internal uint u202Cu200Du206Au200Bu200Bu200Fu202Eu206Bu200Fu202Bu200Fu202Cu202Eu200Eu206Eu200Bu200Fu206Bu200Du200Du206Au202Au200Eu202Bu206Eu202Bu202Bu202Du206Au202Au202Bu206Cu200Du202Du202Eu202Du200Cu202Eu206Fu206Du202E;

internal uint u200Eu206Fu200Du206Bu200Du206Du200Cu206Au206Du206Fu200Fu206Au202Au200Eu206Bu202Du202Eu202Eu206Du202Du200Du202Du200Cu206Eu206Bu202Eu206Cu200Fu200Bu202Du202Eu206Bu200Eu206Eu206Cu206Bu202Au200Cu202Au200Cu202E;

internal uint u202Du202Bu206Eu202Bu200Bu202Cu202Du202Bu200Bu206Au202Bu206Du202Cu206Eu200Cu202Au202Cu200Eu200Du200Bu200Eu202Eu206Du202Eu200Du206Fu206Fu200Cu200Cu202Du206Fu202Du206Du206Cu202Bu202Cu200Fu202Eu200Du206Fu202E;

internal class u202Cu202Au202Du200Fu206Eu200Eu206Au202Au200Bu200Eu206Au200Du206Bu200Fu202Bu200Du202Cu206Bu200Bu206Cu202Bu206Eu206Au206Au200Eu202Au202Cu202Cu206Cu200Eu202Au200Bu200Cu200Du200Fu202Du206Du206Du200Fu206Eu202E { internal void u202Eu206Bu202Du206Du200Eu206Cu206Bu202Cu206Du200Bu206Au206Cu200Cu200Bu202Au206Du202Au202Au200Bu200Fu202Cu200Cu206Bu200Bu202Eu202Eu206Au206Cu200Cu200Cu206Du206Du202Eu206Du206Au200Fu200Bu206Bu206Du202Bu202E(uint) { }

internal void u202Cu202Bu206Au200Bu200Fu206Eu200Fu206Cu200Du202Eu202Au206Bu206Du200Du202Bu202Au200Fu202Du206Au200Eu202Cu206Fu206Bu202Eu206Cu200Du206Eu202Eu202Bu200Du206Cu200Eu206Bu206Eu202Eu206Bu200Fu202Bu206Eu206Cu202E() { }

{ /* An exception occurred when decompiling this method (06000025)

at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackSlot.ModifyStack(StackSlot[] stack, Int32 popCount, Int32 pushCount, ByteCode pushDefinition) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 47 at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackAnalysis(MethodDef methodDef) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 387 at ICSharpCode.Decompiler.ILAst.ILAstBuilder.Build(MethodDef methodDef, Boolean optimize, DecompilerContext context) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 271 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 112 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 99 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 99

/;

}

internal u202Cu202Au202Du200Fu206Eu200Eu206Au202Au200Bu200Eu206Au200Du206Bu200Fu202Bu200Du202Cu206Bu200Bu206Cu202Bu206Eu206Au206Au200Eu202Au202Cu202Cu206Cu200Eu202Au200Bu200Cu200Du200Fu202Du206Du206Du200Fu206Eu202E() { }

internal uint u200Du200Fu200Cu202Eu206Cu202Du206Au206Fu206Bu200Du200Fu202Eu202Eu202Bu206Bu200Fu200Bu202Bu206Eu200Cu202Au202Au200Fu206Eu202Cu206Du206Du202Eu202Cu200Cu206Du202Eu200Du200Cu200Cu200Fu202Bu200Eu202Cu202Eu202E; }

internal class u202Eu206Du200Fu200Du202Au200Eu202Eu206Du202Au202Bu200Fu200Cu206Eu200Du202Du206Eu202Bu202Eu206Du200Bu206Eu206Du206Fu200Eu200Fu200Cu202Bu206Fu206Fu202Bu206Au206Fu206Cu206Du200Du202Du200Fu206Au202Bu206Fu202E { internal void u202Du202Cu202Cu202Du206Fu206Fu202Cu200Du200Bu200Du202Eu202Cu200Du206Bu200Du206Au206Bu200Fu206Du202Du202Cu202Au202Bu200Eu200Eu206Du202Eu202Au202Eu206Du206Bu202Eu206Bu200Cu200Cu202Au202Eu206Du202Eu206Fu202E(int, int) { /* An exception occurred when decompiling this method (06000027)

at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackSlot.ModifyStack(StackSlot[] stack, Int32 popCount, Int32 pushCount, ByteCode pushDefinition) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 47 at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackAnalysis(MethodDef methodDef) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 387 at ICSharpCode.Decompiler.ILAst.ILAstBuilder.Build(MethodDef methodDef, Boolean optimize, DecompilerContext context) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 271 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 112 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 99 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 99

/;

}

internal void u202Du206Bu206Fu200Fu202Du202Eu200Fu202Cu202Bu200Du206Bu206Fu200Cu202Du200Bu202Eu202Au202Au202Du200Du200Bu206Au202Cu200Bu200Fu200Cu202Du206Eu206Cu206Fu202Au202Bu202Au206Eu202Bu200Eu202Du206Fu202Au206Eu202E() { /* An exception occurred when decompiling this method (06000028)

at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable) at System.Array.Copy(Array sourceArray, Array destinationArray, Int32 length) at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackSlot.ModifyStack(StackSlot[] stack, Int32 popCount, Int32 pushCount, ByteCode pushDefinition) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 48 at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackAnalysis(MethodDef methodDef) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 387 at ICSharpCode.Decompiler.ILAst.ILAstBuilder.Build(MethodDef methodDef, Boolean optimize, DecompilerContext context) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 271 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 112 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 99 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 99

/;

}

internal uint u202Du202Au200Eu200Eu206Eu202Au206Eu202Eu206Eu200Bu200Du206Au202Du202Du206Eu206Bu202Du206Du202Du200Du202Eu200Fu206Du202Bu206Au206Bu206Bu202Du206Du206Fu200Bu200Du202Eu200Du200Cu206Cu202Bu206Cu200Bu206Au202E(uint, byte) { }

{ }

{ }

internal u202Eu206Du200Fu200Du202Au200Eu202Eu206Du202Au202Bu200Fu200Cu206Eu200Du202Du206Eu202Bu202Eu206Du200Bu206Eu206Du206Fu200Eu200Fu200Cu202Bu206Fu206Fu202Bu206Au206Fu206Cu206Du200Du202Du200Fu206Au202Bu206Fu202E() { }

internal int u202Du202Du200Cu200Fu200Eu202Cu206Eu202Cu200Bu206Fu202Du202Bu206Cu202Bu206Du202Cu206Cu200Du200Eu200Du206Fu202Bu206Du200Du206Du200Bu206Du206Cu206Au200Bu200Cu206Cu200Bu202Eu206Bu202Bu200Du206Au202Du202E;

internal int u202Du202Au202Au200Eu200Du200Eu200Cu200Du202Au206Eu206Bu200Eu206Fu206Eu202Du202Eu200Cu202Eu206Eu200Bu202Eu206Eu206Cu200Bu200Fu206Bu200Fu202Cu202Cu206Cu206Au206Du206Fu206Bu206Eu202Bu206Au202Bu200Du206Bu202E;

internal uint u202Cu200Eu200Cu206Du200Eu202Cu200Bu206Fu202Cu202Du206Du206Au206Cu200Cu202Au202Au206Cu202Au206Cu202Au202Du200Bu206Bu202Cu200Eu206Bu200Du202Cu206Cu206Fu206Au202Du200Eu202Du202Au206Bu200Bu206Eu202Bu202Eu202E;

internal struct u206Au200Cu206Bu206Fu200Fu202Bu206Fu202Au202Cu200Eu202Au206Cu206Du200Du206Au202Bu202Bu200Du202Au202Cu200Bu206Fu200Du206Eu200Eu206Eu200Bu202Bu206Bu200Bu206Du202Eu200Cu200Cu206Cu206Du200Cu202Du206Fu200Eu202E { internal void u200Bu202Du206Au206Au206Bu202Bu200Fu202Eu206Cu200Fu202Au202Au200Du206Du202Cu200Cu206Du202Du202Du200Cu206Bu200Fu202Bu202Bu202Bu202Eu200Eu202Du202Cu206Au202Du200Fu202Cu202Cu200Bu206Cu200Bu206Fu206Eu202E() { }

internal void u202Eu200Bu206Du202Bu200Bu202Cu202Eu206Fu202Eu206Cu206Fu200Cu200Du200Cu202Cu206Eu200Du200Bu202Au206Du202Au206Fu206Fu206Fu202Au200Cu202Au202Eu206Au202Bu202Eu202Cu200Bu200Du206Au200Bu202Eu200Du200Du206Du202E() { }

{ /* An exception occurred when decompiling this method (0600002F)

at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable) at System.Array.Copy(Array sourceArray, Array destinationArray, Int32 length) at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackSlot.ModifyStack(StackSlot[] stack, Int32 popCount, Int32 pushCount, ByteCode pushDefinition) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 48 at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackAnalysis(MethodDef methodDef) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 387 at ICSharpCode.Decompiler.ILAst.ILAstBuilder.Build(MethodDef methodDef, Boolean optimize, DecompilerContext context) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 271 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 112 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 99 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 99

/;

}

{ }

} } }

internal class u200Fu202Au206Bu200Du202Bu200Eu202Eu206Au206Cu200Eu206Du200Fu202Bu200Bu200Fu200Eu202Au206Fu202Bu200Eu200Cu200Fu202Bu206Cu202Au200Du206Au206Cu200Cu202Au206Du206Eu206Cu200Cu202Cu200Eu206Cu200Cu206Fu206Au202E { internal void u202Bu202Cu200Bu206Au200Du202Du202Cu200Fu206Bu202Cu200Fu200Cu206Au206Fu200Bu200Fu200Bu202Eu206Au200Du202Du206Cu202Du202Eu202Eu206Fu202Bu202Eu200Cu202Bu202Eu206Bu206Fu202Bu206Cu206Eu206Du206Cu206Eu202Au202E(uint) { }

internal void u202Du202Cu206Fu206Bu206Fu202Eu202Eu200Du206Cu200Fu206Eu202Du202Du202Au206Cu206Bu206Bu202Bu206Bu206Au202Eu206Bu206Bu206Eu202Du200Cu200Du202Du202Du202Eu202Du206Fu206Au200Bu200Eu206Du202Bu200Du206Cu202Du202E(Stream, bool) { }

internal void u200Fu200Du202Bu206Au200Eu202Au202Cu200Fu206Au202Bu200Bu206Bu202Du200Bu200Fu200Fu206Eu200Du202Au206Du202Eu200Fu200Du200Fu200Du206Bu206Bu200Du200Bu206Au200Du206Eu202Eu200Eu200Fu200Bu202Du206Au206Du202E() { }

internal void u206Au200Du200Eu206Du202Eu200Fu202Au206Fu206Au206Bu200Bu200Du206Fu200Eu200Fu200Eu200Cu202Bu200Bu206Bu202Eu206Du202Cu206Bu200Cu200Du200Bu206Eu200Cu200Bu206Fu200Du202Du206Au200Bu206Bu202Cu200Fu206Bu202Bu202E() { /* An exception occurred when decompiling this method (06000034)

at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackSlot.ModifyStack(StackSlot[] stack, Int32 popCount, Int32 pushCount, ByteCode pushDefinition) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 47 at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackAnalysis(MethodDef methodDef) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 387 at ICSharpCode.Decompiler.ILAst.ILAstBuilder.Build(MethodDef methodDef, Boolean optimize, DecompilerContext context) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 271 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 112 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 99 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 99

/;

}

internal void u202Au202Du200Fu200Du200Eu202Eu206Cu200Eu202Au206Du200Du202Au206Bu202Au202Bu206Bu200Bu202Eu200Cu206Au200Eu206Bu200Cu206Cu202Eu202Du200Du206Eu206Du200Bu202Cu202Au200Fu206Fu206Eu200Cu200Du202Au200Fu206Fu202E(uint, uint) { }

internal void u206Au206Fu202Cu202Cu206Du202Bu202Du206Fu206Du202Eu200Cu200Bu202Du202Cu206Fu206Bu200Cu206Fu206Au200Fu202Cu206Bu206Bu200Eu206Eu206Bu206Au202Au200Cu200Du200Eu200Fu206Eu206Eu206Du200Fu202Eu206Fu200Bu206Du202E(byte) { }

internal byte u206Du202Bu202Bu202Du206Bu202Cu202Au202Eu206Cu200Bu206Du202Eu200Cu202Au200Du202Cu200Eu200Eu200Fu200Cu200Fu202Du202Du200Eu206Bu206Bu206Bu206Du202Du202Du200Cu206Eu206Fu206Cu202Au202Cu206Cu202Eu206Eu200Fu202E(uint) { }

internal u200Fu202Au206Bu200Du202Bu200Eu202Eu206Au206Cu200Eu206Du200Fu202Bu200Bu200Fu200Eu202Au206Fu202Bu200Eu200Cu200Fu202Bu206Cu202Au200Du206Au206Cu200Cu202Au206Du206Eu206Cu200Cu202Cu200Eu206Cu200Cu206Fu206Au202E() { }

internal byte[] u206Cu206Eu202Bu200Cu200Cu202Du206Cu200Eu200Eu206Cu206Au206Au200Cu200Cu202Cu200Eu200Bu200Cu200Fu206Du206Cu202Bu200Cu202Au202Bu200Eu206Du202Au200Cu200Eu200Bu206Au206Fu202Eu206Eu202Eu200Bu206Eu206Eu206Bu202E;

internal uint u206Fu202Au206Cu202Au200Bu206Au206Au200Eu202Bu200Fu202Au202Bu206Cu206Au206Cu202Du206Fu202Bu200Bu202Au206Du202Cu206Bu206Cu202Bu200Cu200Cu206Cu200Eu202Cu200Fu200Du206Eu202Eu202Bu200Bu206Cu200Eu200Eu202Bu202E;

internal Stream u200Fu206Cu206Fu200Fu202Eu202Bu206Eu202Cu200Cu200Eu200Bu206Cu206Au200Eu200Cu206Cu200Eu202Au202Eu206Cu206Cu206Au200Du206Bu200Bu206Fu206Bu202Eu200Du206Du202Bu206Au206Au206Fu202Au202Cu200Bu206Eu200Bu206Fu202E;

internal uint u200Bu202Au202Eu200Du202Eu206Cu200Eu202Bu206Eu206Au202Du202Eu202Cu200Fu200Du202Au200Du206Bu202Bu206Au200Eu206Bu202Eu200Du200Cu206Du200Eu200Fu200Cu200Eu200Bu206Fu200Eu202Eu200Cu206Du202Au200Bu206Au200Fu202E;

internal uint u206Du202Eu206Bu206Fu206Eu200Fu206Au202Du200Eu200Eu202Au200Bu202Bu200Cu202Bu202Du202Du202Du206Fu206Eu200Eu206Au202Du206Cu206Du202Du202Bu202Cu202Du202Au206Du200Fu202Cu202Cu206Bu202Du200Cu202Au200Cu206Du202E; }

internal struct u206Eu202Eu206Du202Eu200Du202Cu206Fu202Au200Fu206Eu206Fu200Cu202Eu200Cu202Cu200Eu200Eu202Cu200Cu206Fu206Eu200Fu200Eu202Cu206Cu202Au202Cu202Eu200Eu206Eu202Bu200Bu202Bu202Bu206Du202Du202Cu200Bu202Bu200Du202E { internal void u200Eu202Cu206Bu206Fu206Cu206Eu200Bu206Fu200Bu200Fu206Eu200Du200Cu202Cu202Bu200Eu202Cu202Du206Bu200Fu206Cu206Eu200Du200Bu206Fu200Eu202Cu202Cu202Cu206Au200Du206Au206Au200Bu202Au202Eu200Du200Eu206Au202Au202E() { }

internal void u200Fu206Fu200Fu200Du200Bu200Bu202Bu206Bu200Du202Bu200Eu202Du206Fu200Fu206Au202Bu206Eu200Cu200Cu206Eu200Bu202Au206Cu200Eu202Du200Bu206Fu200Eu206Eu200Bu202Bu206Eu206Au202Cu202Cu206Au200Eu206Au200Cu206Du202E() { }

internal void u200Bu202Eu202Bu206Au200Bu200Cu206Du206Bu206Cu206Du202Au202Au202Du206Eu206Cu202Au202Cu206Cu202Cu202Du206Eu206Eu202Eu202Eu206Du202Bu206Du200Cu206Au202Eu202Au202Bu200Bu206Fu200Du206Eu202Du206Eu202Au202Eu202E() { }

internal void u200Fu206Du202Au206Au200Fu200Cu200Fu202Cu206Fu202Bu206Du200Fu206Du202Du206Cu206Au206Du200Du206Fu202Eu200Fu200Cu206Au206Bu200Eu202Eu200Du202Eu202Du206Du206Cu200Du202Eu200Eu200Fu200Fu202Eu200Bu206Bu200Du202E() { }

internal void u206Bu200Bu200Cu206Du202Cu206Bu202Du200Du206Du202Bu200Fu202Au202Au202Au200Cu206Fu200Du202Bu202Du200Cu202Bu206Fu206Cu202Eu206Fu202Eu206Fu202Au200Bu200Bu200Eu200Fu202Au206Fu206Du200Bu206Eu202Au200Du206Du202E() { }

internal bool u206Bu206Bu202Cu200Fu206Bu200Eu202Cu206Bu206Cu200Eu206Eu206Du202Eu206Du206Fu206Cu206Cu200Cu206Eu206Bu202Eu202Eu206Fu200Du206Cu200Du206Du202Eu206Fu200Eu200Cu206Du200Bu202Du206Au206Cu202Eu206Eu200Fu202Du202E() { /* An exception occurred when decompiling this method (0600003E)

at System.Array.Copy(Array sourceArray, Int32 sourceIndex, Array destinationArray, Int32 destinationIndex, Int32 length, Boolean reliable) at System.Array.Copy(Array sourceArray, Array destinationArray, Int32 length) at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackSlot.ModifyStack(StackSlot[] stack, Int32 popCount, Int32 pushCount, ByteCode pushDefinition) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 48 at ICSharpCode.Decompiler.ILAst.ILAstBuilder.StackAnalysis(MethodDef methodDef) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 387 at ICSharpCode.Decompiler.ILAst.ILAstBuilder.Build(MethodDef methodDef, Boolean optimize, DecompilerContext context) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerILAstILAstBuilder.cs:line 271 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 112 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 99 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:adnSpydnSpyExtensionsILSpy.DecompilerICSharpCode.DecompilerICSharpCode.DecompilerAstAstMethodBodyBuilder.cs:line 99

/;

}

internal uint u200Bu200Eu202Eu202Bu206Au202Eu202Bu200Du202Eu206Au200Cu202Cu202Eu200Cu206Eu206Au202Au200Fu200Eu206Cu200Fu200Fu202Eu202Bu206Du200Eu206Bu200Bu206Bu200Cu202Du202Bu200Eu202Bu206Au202Du206Du200Fu206Eu202Au202E; }

[StructLayout(LayoutKind.Explicit, Size = 3392)] internal struct u200Cu206Eu200Eu206Cu206Au200Du206Du206Bu200Fu200Fu202Au200Cu200Bu200Eu202Du206Bu200Eu202Eu202Cu202Au206Du200Eu206Eu206Eu206Cu206Du206Cu206Cu200Bu202Cu200Eu202Au200Bu200Du206Cu206Cu206Fu200Eu202Eu202E { } }

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

[

edit

]

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.

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()

[

edit

]

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)

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

[

edit

]

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ụ: Viết chương trình cho phép chép toàn bộ chuỗi nguồn vào chuỗi đích.

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()

[

edit

]

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)

Trích một phần chuỗi, hàm strchr()

[

edit

]

Để trích một chuỗi con của một chuỗi ký tự bắt đầu từ một ký tự được chỉ định trong chuỗi cho đến hết chuỗi, ta sử dụng hàm strchr().

Cú pháp: char *strchr(const char *str, int c)

Ghi chú:

Nếu ký tự đã chỉ định không có trong chuỗi, kết quả trả về là NULL.

Kết quả trả về của hàm là một con trỏ, con trỏ này chỉ đến ký tự c được tìm thấy đầu tiên trong chuỗi str.

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

[

edit

]

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”.

int main() {

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, hàm stricmp()

[

edit

]

Hàm này thực hiện việc so sánh trong n ký tự đầu tiên của 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()

Khởi tạo chuỗi, hàm memset()

[

edit

]

Hàm này được sử dụng để đặt n ký tự đầu tiên của chuỗi là ký tự c.

Cú pháp: memset(char *Des, int c, size_t n)

Đổi từ chuỗi ra số, hàm atoi(), atof(), atol() (trong stdlib.h)

[

edit

]

Để chuyển đổi chuỗi ra số, ta sử dụng các hàm trên.

Cú pháp:

int atoi(const char *s): chuyển chuỗi thành số nguyên

long atol(const char *s): chuyển chuỗi thành số nguyên dài

float atof(const char *s): chuyển chuỗi thành số thực

Nếu chuyển đổi không thành công, kết quả trả về của các hàm là 0.

Bài tập

[

edit

]

1. Viết chương trình nhập một chuỗi ký tự từ bàn phím, xuất ra màn hình mã Ascii của từng ký tự có trong chuỗi.

2. Viết chương trình nhập một chuỗi ký tự từ bàn phím, xuất ra màn hình chuỗi đảo ngược của chuỗi đó. Ví dụ đảo của “abcd egh” là “hge dcba”.

3. Viết chương trình nhập một chuỗi ký tự và kiểm tra xem chuổi đó có đối xứng không.

Ví dụ : Chuỗi ABCDEDCBA là chuỗi đối xứng….

4. Nhập vào một chuỗi bất kỳ, hãy đếm số lần xuất hiện của mỗi loại ký tự.

5. Viết chương trình nhập vào một chuỗi.

In ra màn hình từ bên trái nhất và phần còn lại của chuỗi. Ví dụ: “Lê Quang Nam” in ra thành:

Lê Quang Nam

In ra màn hình từ bên phải nhất và phần còn lại của chuỗi. Ví dụ: “Nguyễn Văn Minh” in ra thành:

Minh Nguyễn Văn

6. Viết chương trình nhập vào một chuỗi rồi xuất chuỗi đó ra màn hình dưới dạng mỗi từ một dòng.

Ví dụ: “Nguyễn Văn Minh”

In ra :

Nguyễn Văn Minh

7. Viết chương trình nhập vào một chuỗi, in ra chuỗi đảo ngược của nó theo từng từ.

Ví dụ : chuỗi “Nguyễn Văn Minh” đảo thành “Minh Văn Nguyễn”

8. Viết chương trình đổi số tiền từ số thành chữ.

9. Viết chương trình nhập vào họ và tên của một người, cắt bỏ các khoảng trống không cần thiết (nếu có), tách tên ra khỏi họ và tên, in tên lên màn hình. Chú ý đến trường hợp cả họ và tên chỉ có một từ.

10. Viết chương trình nhập vào họ và tên của một người, cắt bỏ các khoảng trắng bên phải, trái và các khoảng trắng không có nghĩa trong chuỗi. In ra màn hình toàn bộ họ tên người đó dưới dạng chữ hoa, chữ thường.

11. Viết chương trình nhập vào một danh sách họ và tên của n người theo kiểu chữ thường, đổi các chữ cái đầu của họ, tên và chữ lót của mỗi người thành chữ hoa. In kết quả lên màn hình.

12. Viết chương trình nhập vào một danh sách họ và tên của n người, tách tên từng người ra khỏi họ và tên rồi sắp xếp danh sách tên theo thứ tự từ điển. In danh sách họ và tên sau khi đã sắp xếp.

Lập Trình C: Hàm Xử Lý Chuỗi (String)

Đăng ký nhận thông báo về những video mới nhất

1. Lập trình C/C++ cho các bạn từ 12-17 tuổi

2. Lập trình C/C++ cho các bạn từ 18 tuổi

Xin được nhắc lại, để khai báo một chuỗi ta khai báo mảng ký tự một chiều, ví dụ câu lệnh char str[20]; sẽ tạo một chuỗi có tên str với kích thước tối đa là 20 ký tự. Còn để khai báo một mảng chuỗi thì ta khai báo một mảng ký tự hai chiều, chẳng hạn như câu lệnh char arrstr[10][25]; sẽ tạo một mảng gồm 10 chuỗi và mỗi chuỗi có tối đa 25 ký tự.

Một chuỗi “abc” chẳng hạn, thực ra sẽ có 4 ký tự ‘a’, ‘b’, ‘c’, và ký tự kết thúc chuỗi ”. Ký tự ” ứng với NULL.

Các ký tự đặc biệt thể hiện trong chuỗi:

\ Gạch chéo ngược (xổ trái) " Nháy đôi (nháy kép) ' Nháy đơn n Newline (line feed) – Xuống dòng r Carriage return b Backspace (Xóa lùi) t Horizontal tab (Tab ngang) f Form feed a Alert (bell) (Phát tiếng kêu thông báo) v Vertical tab (Tab dọc) ? Question mark (dùng trong đồ họa 3 chiều) nnn Character with octal value nnn xhh Character with hexadecimal value hh

Ba loại hàm có sẵn trong thư viện string.h:

các hàm str thao tác với các chuỗi ký tự kết thúc bằng null;

các hàm strn thao tác với chuỗi các ký tự không rỗng.

1. strlen()

Hàm strlen() (string length) dùng để lấy kích thước chuỗi (là số lượng ký tự của chuỗi). Kích thước của chuỗi thường được dùng trong các vòng lặp lấy từng ký tự của chuỗi. Cú pháp của hàm là:

strlen(str);

, trong đó, str có thể là một biến chuỗi hoặc một hằng chuỗi thì cũng đều được chấp nhận.

Chương trình dưới đây hiển thị nội dung của một chuỗi trong đó giữa các ký tự được đặt thêm một ký tự ‘*’:

main() {

char

str[

10

] =

“V1Study”

;

int

i; /* truy xuất và hiển thị từng ký tự của chuỗi */

for

(i =

0

; i<

strlen

(str); i++) printf(

“%c * “

, str[i]);

return

0

; }

Kết quả của chương trình trên được minh họa như sau:

V * 1 * S * t * u * d * y *

2. strcpy()

Hàm strcpy() (string copy) dùng để gán chuỗi cho chuỗi.

Ngôn ngữ C không cho phép ta gán trực tiếp chuỗi cho chuỗi thông qua toán tử gán (=) vì chuỗi là mảng ký tự. Vì vậy, ta cần phải sử dụng hàm strcpy(). Hàm này có cú pháp như sau:

strcpy(str1, str2);

, trong đó, str1 và str2 đều có thể là các biến chuỗi hoặc hằng chuỗi.

Hàm strcpy() sẽ gán giá trị của chuỗi str2 cho chuỗi str1, đồng thời hàm trả về chuỗi str1.

Đoạn mã sau đây minh họa việc sử dụng hàm strcpy(). Nó thay đổi tên của một khách sạn và hiển thị tên mới.

main() {

char

tenkhachsan1[

15

] =

“BLUE Hotel”

;

char

tenkhachsan2[

15

] =

“GREEN Hotel”

; printf(

“Ten cu cua khach san la

%s

“n

, tenkhachsan1); /* tiến hành thay đổi tên của khách sạn */ strcpy(tenkhachsan1, tenkhachsan2); /* sau đó hiển thị tên mới */ printf(

“Sau khi doi, khach san co ten la

%s

“n

, tenkhachsan2);

return

0

; }

3. strcat()

Hàm strcat() (string concatenate) được sử dụng để nối hai chuỗi vào nhau. Cú pháp của hàm là:

strcat(str1, str2);

Hàm sẽ tiến hành nối chuỗi str2 vào sau chuỗi str1 và trả về nội dung của chuỗi str1 sau khi nối.

Chương trình sau đây nhận vào họ, đệm và tên, sau đó nối chúng với nhau và hiển thị ra họ tên đầy đủ.

main() {

char

ho[

10

];

char

dem[

15

];

char

ten[

10

];

char

hovaten[

35

]=

“”

; printf(

n

Moi nhap ho: “

); /* nhập họ */ gets(ho); /* tiến hành nối họ và chuỗi chứa họ và tên */ strcat(hovaten, ho); printf(

n

Nhap vao dem: “

); /* nhập đệm */ gets(dem); /* đưa thêm dấu cách */ strcat(hovaten,

” “

); /* rồi đưa đệm vào */ strcat(hovaten, dem); printf(

n

Xin moi nhap ten cua ban: “

); /* cuối cùng nhập vào tên*/ gets(ten); strcat(hovaten,

” “

); /* rồi đưa tên vào */ strcart(hovaten, ten); /* và hiển thị ra màn hình họ và tên đầy đủ */ printf(

n

Ho va ten cua ban la:

%s

, hovaten);

return

0

; }

4. strchr()

Hàm strchr() (string character) dùng để tìm kiếm ký tự trong chuỗi. Cú pháp của hàm là:

strchr(str, chr);

, trong đó, chr có thể là một biến ký tự hoặc một hằng ký tự đều được.

Quy cách hoạt động của hàm này là nó sẽ tìm xem trong chuỗi str có ký tự chr hay không, nếu có thì hàm trả về chuỗi bắt đầu từ vị trí đầu tiên tìm thấy ký tự chr cho đến hết chuỗi str, ngược lại thì hàm trả về NULL.

Chương trình sau đây xác định liệu ký tự ‘a’ có xuất hiện trong tên hai thành phố hay không.

main() {

char

str1[

15

] =

“Ha Noi”

;

char

str2[

30

] =

“Thanh pho Ho Chi Minh”

;

char

chr =

‘a’

; clrscr(); /* nếu khác NULL tức là tìm thấy chr trong str1 */

if

(strchr(str1, chr) != NULL){ /* thì in ra ra thông báo có xuất hiện */ printf(

n

‘%c’ co xuat hien trong chuoi

%s

“n

,chr,str1); }

else

{ /* nếu không thì thông báo không xuất hiện */ printf(

n

‘%c’ khong xuat hien trong chuoi

%s

“n

,chr,str1); } /* kiểm tra xem ‘a’ có nằm trong chuỗi thứ hai không */

if

(strchr(str2, chr) != NULL) { printf(

n

‘%c’ xuat hien trong

%s

“n

,chr,str2); }

else

{ printf(

n

‘%c’ khong xuat hien trong

%s

“n

,chr,str2); }

return

0

; }

5. strstr()

Hàm strstr() (string string) dùng để tìm kiếm chuỗi trong chuỗi. Cú pháp của hàm là:

strstr(Chuỗi1, Chuỗi2) //tìm Chuỗi2 trong Chuỗi1

, trong đó nếu không tìm thấy Chuỗi2 trong Chuỗi1 thì hàm trả về giá trị NULL. Ngược lại, hàm sẽ trả về một chuỗi bắt đầu từ vị trí đầu tiên tìm thấy Chuỗi2 cho đến hết Chuỗi1. Ví dụ:

char

s1

[

10

] =

"abcdefghi"

, s2[

5

] =

"cde"

, s3[

5

] =

"cdf"

; strstr(s1, s2); strstr(s1, s3);

Hàm strcmp() (string compare) dùng để so sánh hai chuỗi với nhau theo tiêu chí so sánh là thứ tự ký tự trong bảng mã ASCII. Hàm này thường hay được dùng để sắp xếp các chuỗi theo chiều tăng hoặc giảm theo vần A B C, ví dụ như sắp xếp các tên sinh viên, các tên môn học theo trật tự tăng hoặc giảm. Cú pháp sử dụng hàm này là như sau:

strcmp(s1, s2)

Hàm sẽ trả về một số chính là hiệu của hai ký tự cuối cùng đem so sánh. Cụ thể hàm sẽ trả về giá trị theo các trường hợp sau:

– một số âm (<0) nếu chuỗi s1 nhỏ hơn chuỗi s2.

– số 0 (==0) nếu chuỗi s1 giống hệt chuỗi s2.

Quy cách so sánh:

Việc so sánh sẽ bắt đầu từ hai ký tự đầu tiên bên trái của hai chuỗi. Bắt đầu từ bên trái, hàm sẽ lấy từng ký tự của chuỗi s2 đem so sánh với ký tự ở vị trí tương ứng của chuỗi s1. Nếu hai ký tự đem so sánh giống nhau thì sẽ chuyển sang so sánh hai ký tự kế tiếp bên phải. Nếu hai ký tự khác nhau thì lập tức dừng lại và đưa ra kết quả: ký tự nào có thứ tự trong bảng mã ASCII lớn hơn thì chuỗi tương ứng sẽ lớn hơn chuỗi kia.

Chẳng hạn:

Chuỗi “abc” nhỏ hơn chuỗi “abd”, vì ký tự ‘d’ có vị trí lơn hơn ký tự ‘c’ trong bảng mã ASCII.

Chuỗi “abc” nhỏ hơn chuỗi “abcd”.

Chuỗi “An” nhỏ hơn chuỗi “Anh”, chuỗi “Anh” nhỏ hơn chuỗi “Binh”, …

Ví dụ:

char

s1

[

5

]=

"Phan"

, s2[

5

]=

"Phi"

, s3[

5

]=

"Phan"

, s4[

7

]=

"Nhuong"

; strcmp(s1,s2); strcmp(s1,s3);

Chương trình sau đây so sánh biến name1 với các biến name2, name3, name4 và hiển thị kết quả của phép so sánh:

main() {

char

str1[

15

] =

“Ha Noi”

;

char

str2[

15

] =

“Da Nang”

;

char

str3[

15

] =

“Sai Gon”

;

char

str4[

15

] =

“Ha Noi”

;

int

sosanh; sosanh = strcmp(str1,str2); printf(

n”

%s

so sanh voi

%s

thi tra ve %d

n

, str1, str2, sosanh); sosanh = strcmp(str1, str3); printf(

n”

%s

so sanh voi

%s

thi tra ve %d

n

, str1, str3, sosanh); sosanh = strcmp(str1,str4); printf(

n”

%s

so sanh voi

%s

thi tra ve %d

n

, str1, str4, sosanh);

return

0

; }

7. strrev()

Hàm strrev() (string reverse) dùng để đảo ngược trật tự một chuỗi. Hàm trả về chuỗi đã được đổi ngược. Cú pháp của hàm là:

strrev(Chuỗi)

Ví dụ, nếu bạn thực hiện lệnh strrev(“Lap trinh vien”);, thì kết quả là chuỗi sẽ đảo ngược thành “neiv hnirt paL”.

8. strlwr()

Hàm strlwr() (string lowercase) dùng để chuyển các ký tự từ ‘A’ đến ‘Z’ trong một chuỗi thành in thường, các ký tự khác không thay đổi.

Ví dụ, câu lệnh strlwr(“ABC”); sẽ chuyển chuỗi “ABC” thành “abc”.

9. strupr()

Hàm strlupr() (string uppercase) dùng để chuyển các ký tự từ ‘a’ đến ‘z’ trong một chuỗi thành in HOA, các ký tự khác không thay đổi.

Ví dụ, lệnh strupr(“vietnam”); sẽ chuyển chuỗi “vietnam” thành chuỗi ”VIETNAM”.

10. strncat()

Hàm này dùng để nối n ký tự của chuỗi sau vào sau chuỗi trước. Cú pháp của hàm như sau:

strncat(s1, s2, n)

Theo đó, hàm sẽ nối n ký tự của chuỗi s2 vào sau chuỗi s1.

Ví dụ:

main(){

char

s1[]=

“abcd”

;

char

s2[]=

“1234”

; strncat(s1, s2,

2

); puts(s1);//Kết quả là: abcd12

return

0

; }

11. strncmp()

Hàm này dùng để so sánh n ký tự đầu tiên của hai chuỗi. Cú pháp như sau:

strncmp(s1, s2, n)

Theo đó, hàm sẽ so sánh n ký tự đầu của hai chuỗi s1 và s2 theo quy cách so sánh giống như hàm strcmp().

Ví dụ:

main(){

char

s1[]=

“abcd”

;

char

s2[]=

“abde”

; printf(

“%d”

,strncmp(s1, s2,

2

));  

return

0

; }

12. strncpy()

Cú pháp:

strncpy(s1, s2, n)

Hàm này dùng để gán n ký tự đầu tiên của chuỗi s2 cho n ký tự đầu tiên của chuỗi s1.

Ví dụ:

main(){

char

s1[]=

“abcd”

;

char

s2[]=

“1234”

; strncpy(s1, s2,

2

); puts(s1);//Kết quả của s1: 12cd

return

0

; }

Hàm Right, Cách Dùng Hàm Cắt Chuỗi Ký Tự Bên Phải Trong Excel

Để tìm kiếm thông tin, dữ liệu trên bảng Excel chúng ta có thể sử dụng nhiều hàm khác như hàm VLOOKUP trên Excel, hàm LEFT tách chuỗi ký tự Excel,.. Và trong bài viết này người dùng sẽ biết thêm cách dùng hàm RIGHT để tìm ký tự trong một chuỗi ký tự lựa chọn.

Hướng dẫn dùng hàm RIGHT trên Excel

Hàm RIGHT có cú pháp sử dụng là =RIGHT(text,[num_chars]). Trong đó:

text: là chuỗi văn bản các bạn muốn trích xuất các ký tự.

num_chars: số lượng ký tự mà các bạn muốn hàm RIGHT trích xuất.

Lưu ý:

Nếu num_chars bỏ qua thì mặc định của nó là 1.

Num_chars luôn phải lớn hơn hoặc bằng 0.

Nếu num_chars lớn hơn độ dài của chuỗi văn bản thì hàm RIGHT trả về toàn bộ chuỗi văn bản.

Ví dụ 1: Dùng hàm RIGHT tìm ký tự Ví dụ 2: Hàm RIGHT tìm ký tự số

2 hàm này kết hợp với nhau sẽ trả về kết quả là giá trị số. Do hàm RIGHT trong Excel luôn trả về chuỗi văn bản, ngay cả khi giá trị gốc là chữ số. Nếu dùng thêm hàm VALUE thì kết quả là số. Bạn tham khảo ví dụ kết hợp 2 hàm trong bài viết Cách sử dụng hàm VALUE trong Excel.

Ví dụ 3: Hàm RIGHT xuất ký tự sau 1 ký tự cụ thể

Khi muốn tách chuỗi ký tự theo sau một ký tự cụ thể cần dùng hàm SEARCH trong Excel hoặc hàm FIND để xác định vị trí ký tự đó, nhưng trừ đi vị trí ký tự được chọn trong tổng chuỗi ký tự được trả về bằng hàm LEN. Công thức kết hợp là =RIGHT(chuỗi văn bản, LEN(chuỗi văn bản) – SEARCH(kí tự, chuỗi văn bản)).

Với bảng ví dụ này cần tìm phần tên trong ô Họ tên, nhập công thức =RIGHT(B2,LEN(B2)-SEARCH(” “,B2)) và nhấn Enter.

Với việc kết hợp 3 hàm trên, chúng ta có thể áp dụng để xuất chuỗi ký tự theo sau bất kỳ một ký tự khác, như dấu phẩy, hai chấm, dấu gạch nối,…

Ví dụ 4: Hàm RIGHT loại n ký tự đầu tiên trong chuỗi

Công thức sử dụng RIGHT(string, LEN(string)-number of chars to remove).

Ví dụ 5: Hàm RIGHT xuất ký tự sau dấu phân cách cuối cùng

Áp dụng công thức vào bảng dữ liệu này chúng ta nhập =RIGHT(B6,LEN(B6)-SEARCH(“$”,SUBSTITUTE(B6,”:”,”$”,LEN(B6)-LEN(SUBSTITUTE(B6,”:”,””))))) và nhấn Enter. Trong đó:

LEN(B6): tổng chiều dài của chuỗi ký tự trong ô B6.

LEN(SUBSTITUTE(B6,”:”,””)): chiều dài của chuỗi ký tự không có dấu hai chấm.

LEN(B6)-LEN(SUBSTITUTE(B6,”:”,””)): tổng chiều dài ban đầu trừ đi chiều dài chuỗi ký tự không có dấu hai chấm.

SUBSTITUTE(B6,”:”,”$”,LEN(B6)-LEN(SUBSTITUTE(B6,”:”,””))): thay thế dấu hai chấm phân tách cuối cùng bằng ký tự mới $, hàm SUBSTITUTE cho phép thay thế ký tự được chỉ định trong chuỗi.

SEARCH(“$”,SUBSTITUTE(B6,”:”,”$”,LEN(B6)-LEN(SUBSTITUTE(B6,”:”,””)))): xác định vị trí của dấu phân tách cuối cùng, trong hình dấu hai chấm được thay bằng dấu $.

RIGHT(B6,LEN(B6)-SEARCH(“$”,SUBSTITUTE(B6,”:”,”$”,LEN(B6)-LEN(SUBSTITUTE(B6,”:”,””))))): trả về chuỗi bên phải dấu phân tách cuối cùng, lấy tổng chiều dài chuỗi trừ đi vị trí của dấu phân cách.

Cập nhật thông tin chi tiết về Hàm Isnumber() Trong C# Kiểm Tra Chuỗi Dữ Liệu Có Phải Là Chuỗi Số Không trên website 2atlantic.edu.vn. Hy vọng nội dung bài viết sẽ đáp ứng được nhu cầu của bạn, chúng tôi sẽ thường xuyên cập nhật mới nội dung để bạn nhận được thông tin nhanh chóng và chính xác nhất. Chúc bạn một ngày tốt lành!