So sánh chuỗi nhap tu file năm 2024

  • 1

Hi mọi người nhờ mọi người giúp em về hàm hay công thức VBA so sánh 2 chuỗi ký tự và chỉ ra ký tự khác nhau giữa chuỗi đó. Ví dụ em có text1 : aabbcc . So sánh với text 2: aaggbb như vậy kết quả em cần là công thức chỉ ra ký tự khác nhau ở đây là gg

  • SO SÁNH CHUỖI.xlsx 8 KB · Đọc: 23
  • 2

    Hi mọi người nhờ mọi người giúp em về hàm hay công thức VBA so sánh 2 chuỗi ký tự và chỉ ra ký tự khác nhau giữa chuỗi đó. Ví dụ em có text1 : aabbcc . So sánh với text 2: aaggbb như vậy kết quả em cần là công thức chỉ ra ký tự khác nhau ở đây là gg

Công thức áp dụng 2 chuỗi bằng nhau và chỉ khác 1 kí tự:.

Mã:

=IFERROR(MID(E3,AGGREGATE(14,6,ROW(INDIRECT("1:"&LEN(E3)))/NOT(MID(D3,ROW(INDIRECT("1:"&LEN(D3))),1)=MID(E3,ROW(INDIRECT("1:"&LEN(E3))),1)),1),1),"")

So sánh chuỗi nhap tu file năm 2024

HeSanbi

Nam Nhân✨Hiếu Lễ Nghĩa Trí Tín✨
  • 3

Áp dụng bằng VBA:

C1 = CompareString(A1, B1)

Không phân biệt hoa thường: C1 = CompareString(A1, B1, True) ---

PHP:

Private Sub test_CompareString()
  Debug.Print CompareString("Abb", "Abb")
End Sub
Function CompareString(ByVal TextA As String, ByVal TextB As String, Optional ByVal CompareCase As Boolean = False) As String
  Static RE As Object
  If RE Is Nothing Then Set RE = CreateObject("VBScript.RegExp")
  With RE
    .Global = True
    .IgnoreCase = CompareCase
    .Pattern = "([\\\?\+\*\[\]\$\^\=\-\{\}\(\)\:\.\|])"
    TextA = .Replace(TextA, "\$1")
    .Pattern = "[" & TextA & "]"
    CompareString = .Replace(TextB, "")
  End With
End Function

  • 4

    Công thức áp dụng 2 chuỗi bằng nhau và chỉ khác 1 kí tự:.

Mã:

=IFERROR(MID(E3,AGGREGATE(14,6,ROW(INDIRECT("1:"&LEN(E3)))/NOT(MID(D3,ROW(INDIRECT("1:"&LEN(D3))),1)=MID(E3,ROW(INDIRECT("1:"&LEN(E3))),1)),1),1),"")

cảm ơn bạn nhiều nhé

Bài viết này mình sẽ hướng dẫn các bạn sử dụng 3 hàm so sánh xâu thông dụng và cách tự xây dựng các hàm này cho riêng mình

NỘI DUNG :

  • Hàm strcmp()
  • Hàm strncmp()
  • Hàm strcmpi()
  • Video tutorial

strcmp

1. Hàm strcmp()

Hàm strcmp()

Để so sánh 2 xâu trong C thì bạn không thể sử dụng các toán tử so sánh mà phải dùng hàm, quy tắc so sánh 2 xâu là xét theo thứ tự từ điển.

Thứ tự từ điển được quyết định bởi mã ASCII, mã ASCII nhỏ hơn sẽ có thứ tự từ điển nhỏ hơn, ví dụ kí tự 'A' thì có thứ tự từ điển nhỏ hơn kí tự 'B'

Khi so sánh 2 xâu theo thứ tự từ điển thì ta lần lượt so sánh 2 kí tự ở cùng vị trí của 2 xâu

Cú pháp :

int strcmp(char *s, char *t)

Tham số : s và t là 2 con trỏ hoặc 2 mảng char[]

Giá trị trả về :

  • < 0 nếu s nhỏ hơn t theo từ điển
  • 0 nếu s giống t
  • \> 0 nếu s lớn hơn t theo từ điển

Trong 1 số trình biên dịch thì khi s < t sẽ trả về -1 và khi s > t sẽ trả về 1.

Ví dụ giá trị trả về khi so sánh 2 xâu bằng hàm strcmp

xâu sxâu tstrcmp(s, t)28tech28tech abc-128tech 28aech zzzz128tech28tech028tech28techabcd-1

Ví dụ :

include "stdio.h"

include "string.h"

include "ctype.h"

int main(){

char s[1000] = "28tech python";  
char t[1000] = "28tech java";  
char c[1000] = "28tech python";  
printf("%d\n", strcmp(s, t));   
if(strcmp(s, c) == 0){  
    printf("Hai xau ky tu giong nhau !\n");  
}  
return 0;  
}

Output :

1 Hai xau ky tu giong nhau !

Xây dựng hàm strcmp() :

Để xây dựng hàm này ta cần xét 2 kí tự ở cùng vị trí của 2 xâu, nếu gặp kí tự đầu tiên khác nhau thì dựa vào thứ tự từ điển của kí tự này để suy ra thứ tự từ điển của 2 xâu ban đầu

Nếu không có kí tự nào khác nhau ta so sánh tới chiều dài, nếu chiều dài cũng giống nhau thì 2 xâu bằng nhau theo thứ tự từ điển