문자열 함수를 사용하거나 문자열 함수를 사용하지 않고 문자열을 비교할 수 있습니다. 먼저 문자열 함수를 사용하여 문자열을 비교하는 방법을 살펴보겠습니다. 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<>
>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('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; }
위 프로그램 분석
- char 유형의 두 배열, 즉 str1과 str2를 선언했습니다. 우리는 사용자 입력을 문자열로 받아들입니다.
- 우리는 문자열을 사용하여 문자열을 비교합니다. strcmp() 기능, 즉 strcmp(str1,str2). 이 함수는 문자열 str1과 str2를 모두 비교합니다. 함수가 0 값을 반환하면 두 문자열이 모두 동일하다는 것을 의미하고, 그렇지 않으면 문자열이 동일하지 않음을 의미합니다.
산출:
strcmp() 함수를 사용하지 않고 문자열 비교
#include int compare(char[],char[]); int main() { char str1[20]; // declaration of char array char str2[20]; // declaration of char array printf('Enter the first string : '); scanf('%s',str1); printf('Enter the second string : '); scanf('%s',str2); int c= compare(str1,str2); // calling compare() function if(c==0) printf('strings are same'); else printf('strings are not same'); return 0; } // Comparing both the strings. int compare(char a[],char b[]) { int flag=0,i=0; // integer variables declaration while(a[i]!=' ' &&b[i]!=' ') // while loop { if(a[i]!=b[i]) { flag=1; break; } i++; } if(flag==0) return 0; else return 1; }
위 프로그램 분석
- 위에서는 char 유형의 두 배열을 선언했으며 사용자 입력을 문자열로 사용합니다.
- 사용자 입력 문자열을 매개변수로 사용하여 두 문자열을 비교하는 Compare() 함수를 정의했습니다. 함수가 0을 반환하면 두 문자열이 모두 동일하다는 뜻입니다. 그렇지 않으면 두 문자열이 모두 동일하지 않습니다. .
산출:
포인터를 사용한 문자열 비교
#include int stringcompare(char*,char*); int main() { char str1[20]; // declaration of char array char str2[20]; // declaration of char array printf('Enter the first string : '); scanf('%s',str1); printf(' Enter the second string : '); scanf('%s',str2); int compare=stringcompare(str1,str2); // calling stringcompare() function. if(compare==0) printf('strings are equal'); else printf('strings are not equal'); return 0; } // Comparing both the strings using pointers int stringcompare(char *a,char *b) { int flag=0; while(*a!=' ' && *b!=' ') // 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 루프를 만들었습니다.
산출: