So sánh tên trong C++

Chương trình C này được sử dụng để so sánh hai chuỗi bằng cách sử dụng hàm strcmp()

Hàm strcmp() so sánh hai chuỗi theo từ điển và được khai báo trong stdio. h

Trường hợp 1. khi các chuỗi bằng nhau, nó trả về 0
Trường hợp 2. khi các chuỗi không bằng nhau, nó trả về sự khác biệt giữa các giá trị ascii của các ký tự khác nhau
a) Khi string1 lớn hơn string2, nó trả về giá trị dương
b) Khi string1 nhỏ hơn string2, nó trả về giá trị âm

cú pháp

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

Chương trình

#include<stdio.h>
#include<string.h>

int main()
{
    char a[100], b[100];    
    printf("Enter the first string\n");    
    gets(a);    

    printf("Enter the second string\n");    
    gets(b);
    
    if( strcmp(a,b) == 0 )
        printf("Entered strings are equal.\n");
    else
        printf("Entered strings are not equal.\n");
        return 0;
}

Đầu ra chương trình

So sánh tên trong C++
báo cáo quảng cáo này

Trong ngôn ngữ lập trình C, hàm strcmp trả về một số nguyên âm, 0 hoặc dương tùy thuộc vào việc đối tượng được trỏ tới bởi s1 nhỏ hơn, bằng hoặc lớn hơn đối tượng được trỏ tới bởi s2

cú pháp

Cú pháp của hàm strcmp trong Ngôn ngữ C là

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

Tham số hoặc Đối số

s1Một mảng để so sánh. s2Một mảng để so sánh

trả lại

Hàm strcmp trả về một số nguyên. Các giá trị trả về như sau

Giá trị trả vềGiải thích0s1 và s2 bằng nhauSố nguyên âmKý tự dừng trong s1 nhỏ hơn ký tự dừng trong s2Số nguyên dươngKý tự dừng trong s1 lớn hơn ký tự dừng trong s2

Tiêu đề bắt buộc

Trong Ngôn ngữ C, tiêu đề bắt buộc cho hàm strcmp là

#include <string.h>

Áp dụng đối với

Trong Ngôn ngữ C, chức năng strcmp có thể được sử dụng trong các phiên bản sau

  • ANSI/ISO 9899-1990

ví dụ strcmp

Hãy xem một ví dụ để xem cách bạn sẽ sử dụng hàm strcmp trong chương trình C

/* Example using strcmp by TechOnTheNet.com */

#include <stdio.h>
#include <string.h>

int main(int argc, const char * argv[])
{
    /* Create a place to store our results */
    int result;

    /* Create two arrays to hold our data */
    char example1[50];
    char example2[50];

    /* Copy two strings into our data arrays */
    strcpy(example1, "C programming at TechOnTheNet.com");
    strcpy(example2, "C programming is fun");

    /* Compare the two strings provided */
    result = strcmp(example1, example2);

    /* If the two strings are the same say so */
    if (result == 0) printf("Strings are the same\n");

    /* If the first string is less than the second say so
     (This is because the 'a' in the word 'at' is less than
     the 'i' in the word 'is' */
    if (result < 0) printf("Second string is less than the first\n");

    return 0;
}

Khi được biên dịch và chạy, ứng dụng này sẽ xuất ra

Second string is less than the first

Chức năng tương tự

Các hàm C khác tương tự như hàm strcmp

  • memcmp function
  • strcoll function
  • strncmp function

Trong bài viết này, chúng ta sẽ thảo luận về so sánh chuỗi trong C. Chúng ta có thể so sánh hai chuỗi trong C bằng nhiều cách tiếp cận khác nhau, bao gồm hàm strcmp() của thư viện chuỗi, không có hàm, con trỏ và đệ quy

Phạm vi

  • Trong bài viết này chúng ta sẽ thảo luận về chương trình so sánh chuỗi trong C sử dụng hàm thư viện chuỗi, không sử dụng hàm thư viện chuỗi, sử dụng con trỏ và sử dụng đệ quy
  • Trong bài viết này, chúng ta sẽ thảo luận về các giá trị trả về có thể có của hàm thư viện chuỗi

Giới thiệu

Bạn đã bao giờ tự hỏi cách các trang web kiểm tra xem mật khẩu có khớp khi bạn đăng ký hay không hoặc cách phần mềm phát hiện nếu có bất kỳ hành vi đạo văn nào hoặc cách hoạt động của bộ lọc thư rác trong thư của bạn?

Có một giải pháp cho tất cả những điều trên - So sánh chuỗi

So sánh tên trong C++

So sánh hai chuỗi hoặc so sánh chuỗi trong C liên quan đến việc tìm hiểu xem chúng có giống nhau hay không. Điều này được thực hiện bằng cách sử dụng một số chức năng tích hợp sẵn hoặc so sánh ký tự chuỗi theo ký tự để xác định xem chúng có bằng nhau không. Trong trường hợp chúng không bằng nhau, chúng ta cũng có thể phân tích và tìm ra chuỗi nào theo thứ tự từ điển (thứ tự từ điển có nghĩa là thứ tự từ điển, nghĩa là các từ bắt đầu bằng 'a' đứng trước các từ bắt đầu bằng 'b' và trước đó là

Có bốn phương pháp để so sánh chuỗi trong C

  • So sánh chuỗi bằng hàm strcmp() String Library
  • So sánh chuỗi mà không sử dụng hàm strcmp()
  • So sánh chuỗi bằng cách sử dụng con trỏ
  • So sánh chuỗi bằng cách sử dụng đệ quy

So sánh chuỗi bằng cách sử dụng chức năng thư viện chuỗi

Các chức năng thư viện chuỗi được xác định trước trong chuỗi. h tệp tiêu đề được sử dụng để thực hiện các thao tác trên chuỗi. Hàm strcmp() dùng để so sánh 2 chuỗi. Hàm strcmp() lấy hai chuỗi làm đầu vào và trả về một kết quả số nguyên có thể bằng 0, dương hoặc âm

Hàm strcmp() so sánh cả hai chuỗi ký tự. Nếu cả hai chuỗi có cùng một ký tự ở cùng một chỉ mục cho đến khi tất cả các ký tự được so sánh hoặc con trỏ chạm đến ký tự null '\0' trong cả hai chuỗi thì chúng ta có thể nói rằng cả hai chuỗi đều bằng nhau

Cú pháp của Hàm strcmp()

int strcmp (const char* str1, const char* str2);  

Trong cú pháp trên, hai đối số str1 và str2 được truyền dưới dạng chuỗi và kiểu trả về là int, cho biết strcmp() cho giá trị số nguyên

Các giá trị trả về có thể có từ hàm strcmp()

Return ValueDescription0Returns 0, When both strings are exactly the same.<0The function will return a negative number if the ASCII value of a character in the first string is smaller than the ASCII value of a character in the second string.>0The function will return a positive value if a character's ASCII value in the first string is bigger than a character's ASCII value in the second string.

Thí dụ

#include   
#include  
int main()  
{  
   char str1[50];  // declaration of char array  
   char str2[50];  // declaration of char array  
   int value; // declaration of integer variable  
   
   printf("Enter the first string : ");  
   scanf("%s",str1);  
   printf("Enter the second string : ");  
   scanf("%s",str2);  
   
   // comparing both the strings using strcmp() function  
   value = strcmp(str1,str2);  
   if(value == 0)  
   printf("strings are same");  
   else  
   printf("strings are not same");  
   return 0;  
}  

đầu ra

________số 8_______

Phân tích chương trình

  • Chúng ta đã khai báo hai mảng ký tự, str1, và str2, sau đó nhập dữ liệu vào cho chúng
  • Hàm strcmp(), được dùng để so sánh các chuỗi (str1,str2). Các chuỗi str1 và str2 sẽ được so sánh bằng chức năng này. Nếu hàm trả về giá trị 0, điều đó có nghĩa là các chuỗi bằng nhau, ngược lại, các chuỗi không bằng nhau

So sánh chuỗi mà không sử dụng hàm strcmp()

Cũng có thể so sánh chuỗi trong C bằng cách sử dụng mà không cần hàm strcmp(). Chúng ta có thể so sánh hai chuỗi bằng cách duyệt qua từng chỉ mục bằng một vòng lặp và so sánh từng ký tự một

#include   
int compareTwoString(char[],char[]);  
int main()  
{  
   char str1[50]; // declaration of char array  
   char str2[50]; // declaration of char array
   
   printf("Enter the first string : ");  
   scanf("%s",str1);  
   
   printf("Enter the second string : ");  
   scanf("%s",str2);  
   
   int c= compareTwoString(str1,str2); // calling compareTwoString() function  
   if(c==0)  
   printf("strings are same");  
   else  
   printf("strings are not same");  
  
   return 0;  
}  
  
// Comparing both the strings.  
int compareTwoString(char a[],char b[])  
{  
    int flag=0,i=0;  // integer variables declaration  
    while(a[i]!='\0' &&b[i]!='\0')  // while loop  
    {  
       if(a[i]!=b[i])  
       {  
           flag=1;  
           break;  
       }  
       i++;  
    } 
    if(a[i]!='\0'||b[i]!='\0')
       return 1;
    if(flag==0)  
    return 0;  
    else  
    return 1;  
}  

đầu ra

Enter the first string : coding
Enter the second string : debugging
strings are not same

Giải trình

  • Trong ví dụ mã, Chúng tôi đã khai báo hai mảng char và đang lấy đầu vào của người dùng dưới dạng chuỗi
  • Chúng tôi đã tạo một hàm compareTwoString() lấy hai chuỗi đầu vào của người dùng làm đối số và so sánh từng ký tự bằng cách sử dụng vòng lặp while. Nếu hàm trả về 0, thì các chuỗi bằng nhau, ngược lại, các chuỗi không bằng nhau

So sánh chuỗi bằng cách sử dụng con trỏ

So sánh chuỗi trong C cũng có thể bằng cách sử dụng con trỏ. Trong cách tiếp cận này, chúng tôi sử dụng con trỏ để duyệt qua các chuỗi và sau đó so sánh các ký tự được trỏ bởi con trỏ

#include
int compareTwoString(char *, char *);
int main()
{
    char str1[50]; // declaration of char array
    char str2[50]; // declaration of char array
    
    printf("Enter the first string : ");
    scanf("%s", str1);
    printf("\nEnter the second string : ");
    scanf("%s", str2);
    
    int compare = compareTwoString(str1, str2); // calling compareTwoString() function.
    if (compare == 0)
        printf("strings are equal");
    else
        printf("strings are not equal");
    return 0;
}
// Comparing both the strings using pointers
int compareTwoString(char *a, char *b)
{
    int flag = 0;
    while (*a != '\0' && *b != '\0') // while loop
    {
        if (*a != *b)
        {
            flag = 1;
        }
        a++;
        b++;
    }
 if(*a!='\0'||*b!='\0')
       return 1;
    if (flag == 0)
        return 0;
    else
        return 1;
}

đầu ra

Enter the first string : Scaler
Enter the second string : Scaler
strings are equal

Giải trình

  • Trong đoạn mã ví dụ, Chúng tôi đã khai báo hai mảng ký tự str1 , str2 và sau đó lấy đầu vào cho chúng
  • Một hàm so sánhTwoString() đã được xác định, hàm này nhận hai con trỏ char làm đối số. Địa chỉ của str1 được giữ bởi con trỏ 'a', trong khi địa chỉ của str2 được giữ bởi con trỏ 'b'. Chúng tôi đã tạo một vòng lặp while bên trong hàm sẽ chạy cho đến khi con trỏ a hoặc b không đạt đến ký tự null

Sử dụng đệ quy

Chúng ta có thể sử dụng đệ quy để so sánh hai chuỗi, vì vậy chúng ta sẽ tính toán độ dài của cả hai chuỗi và hàm so sánhTwoString sẽ tiếp tục gọi chính nó cho đến khi điều kiện trở thành sai

Làm thế nào để so sánh hai từ trong C?

hàm strcmp() dùng để so sánh hai chuỗi. Hàm strcmp() lấy hai chuỗi làm đầu vào và trả về một kết quả số nguyên có thể bằng 0, dương hoặc âm. Hàm strcmp() so sánh cả hai chuỗi ký tự.

Làm cách nào để so sánh một ký tự trong C?

Kích thước ký tự trong C là 1 byte. .
Có hai phương pháp để so sánh các ký tự trong C và đó là. Sử dụng các giá trị ASCII. Sử dụng strcmp(). Sử dụng các giá trị ASCII để so sánh các ký tự. .
Thí dụ. C. C. // Chương trình C để so sánh

Chúng ta có thể sử dụng == để so sánh các chuỗi trong C không?

Trong C, các giá trị chuỗi (bao gồm cả ký tự chuỗi) được biểu diễn dưới dạng mảng char theo sau bởi dấu kết thúc 0 và bạn không thể sử dụng toán tử == để so sánh nội dung mảng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ; the language simply doesn't define the operation.

Làm cách nào để so sánh từng ký tự của hai chuỗi trong C?

Chúng tôi so sánh các chuỗi bằng cách sử dụng hàm strcmp(), tôi. e. , strcmp(str1,str2). Hàm này sẽ so sánh cả hai chuỗi str1 và str2. Nếu hàm trả về giá trị 0 có nghĩa là cả hai chuỗi đều giống nhau, nếu không thì các chuỗi không bằng nhau