logo

두 문자열을 비교하는 C 프로그램

문자열 함수를 사용하거나 문자열 함수를 사용하지 않고 문자열을 비교할 수 있습니다. 먼저 문자열 함수를 사용하여 문자열을 비교하는 방법을 살펴보겠습니다. strcmp(), 이는 문자열.h 헤더 파일.

문자열 함수를 이용한 문자열 비교

미리 정의된 문자열 함수 문자열.h 헤더 파일은 strcmp() 기능. strcmp() 함수는 두 개의 문자열을 매개 변수로 간주하며, 이 함수는 정수 값이 될 수 있는 정수 값을 반환합니다. , 긍정적인 또는 부정적인 .

strcmp() 함수의 구문은 다음과 같습니다.

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

위 구문에서는 두 개의 매개변수가 문자열로 전달됩니다. 즉, str1 그리고 str2 이고 반환 유형은 다음과 같습니다. 정수 이는 strcmp()가 정수 값을 반환한다는 것을 의미합니다.

strcmp() 함수는 두 문자열의 문자를 비교합니다. 두 문자열의 첫 번째 문자가 동일하면 모든 문자가 비교되거나 포인터가 널 문자 ''을 가리킬 때까지 이 비교 프로세스가 계속됩니다.

strcmp() 함수에서 가능한 반환 값

반환 값 설명
0 두 문자열이 모두 같을 때.
<0< td> 첫 번째 문자열 문자의 ASCII 값이 두 번째 문자열 문자의 ASCII 값보다 작으면 함수는 음수 값을 반환합니다.
>0 첫 번째 문자열 문자의 ASCII 값이 두 번째 문자열 문자의 ASCII 값보다 크면 함수는 양수 값을 반환합니다.

예를 통해 이해해 봅시다.

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

위 프로그램 분석

  • char 유형의 두 배열, 즉 str1과 str2를 선언했습니다. 우리는 사용자 입력을 문자열로 받아들입니다.
  • 우리는 문자열을 사용하여 문자열을 비교합니다. strcmp() 기능, 즉 strcmp(str1,str2). 이 함수는 문자열 str1과 str2를 모두 비교합니다. 함수가 0 값을 반환하면 두 문자열이 모두 동일하다는 것을 의미하고, 그렇지 않으면 문자열이 동일하지 않음을 의미합니다.

산출:

두 문자열을 비교하는 C 프로그램
두 문자열을 비교하는 C 프로그램

strcmp() 함수를 사용하지 않고 문자열 비교

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

위 프로그램 분석

  • 위에서는 char 유형의 두 배열을 선언했으며 사용자 입력을 문자열로 사용합니다.
  • 사용자 입력 문자열을 매개변수로 사용하여 두 문자열을 비교하는 Compare() 함수를 정의했습니다. 함수가 0을 반환하면 두 문자열이 모두 동일하다는 뜻입니다. 그렇지 않으면 두 문자열이 모두 동일하지 않습니다. .

산출:

두 문자열을 비교하는 C 프로그램

포인터를 사용한 문자열 비교

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

위 프로그램 분석

  • char 유형 str1과 str2의 두 배열을 만들었습니다. 우리는 사용자 입력을 문자열로 받아들입니다.
  • char 유형의 두 포인터를 매개변수로 사용하는 stringcompare() 함수를 정의했습니다. 'a' 포인터는 str1의 주소를 보유하고 'b' 포인터는 str2의 주소를 보유합니다. 함수 내부에는 포인터 a 또는 b가 널 문자에 도달하지 않을 때까지 실행되는 while 루프를 만들었습니다.

산출:

두 문자열을 비교하는 C 프로그램