Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

ฟังก์ชั่น strcoll () ในภาษา C คืออะไร?


ฟังก์ชันไลบรารี C int strcoll(const char *str1, const char *str2) เปรียบเทียบสตริง str1 ถึง str2 . ผลลัพธ์จะขึ้นอยู่กับการตั้งค่า LC_COLLATE ของตำแหน่ง

อาร์เรย์ของอักขระเรียกว่าสตริง

ประกาศ

รับด้านล่างเป็นการประกาศของอาร์เรย์ -

char stringname [size];

ตัวอย่างเช่น − char string[50]; สตริงที่มีความยาว 50 ตัวอักษร

การเริ่มต้น

  • การใช้ค่าคงที่อักขระตัวเดียว −
char string[10] = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’ ,‘\0’}
  • การใช้ค่าคงที่สตริง −
char string[10] = "Hello":;

กำลังเข้าถึง − มีสตริงควบคุม "%s" ที่ใช้สำหรับเข้าถึงสตริงจนกว่าจะพบ '\0'

ฟังก์ชัน Strcoll()

ฟังก์ชันนี้เหมือนกับฟังก์ชัน strcmp() โดยจะเปรียบเทียบสองสตริงและคืนค่าจำนวนเต็มตามค่าของการเปรียบเทียบ

ประกาศ

รับด้านล่างเป็นการประกาศของฟังก์ชัน strcoll() -

int strcoll(const char *string1, const char *string2)

ที่นี่

  • string1 หมายถึง สตริงแรก
  • string2 หมายถึง สตริงที่สอง

คืนค่าของ strcoll()

  • > 0 เมื่อค่า ASCII ของถ่านตัวแรกที่ไม่ตรงกันในสตริง string1 มากกว่า string2

  • <เมื่อค่า ASCII ของถ่านตัวแรกที่ไม่ตรงกันในสตริง string1 น้อยกว่า string2

  • =0 ถ้าทั้งสองสตริงเท่ากัน

ตัวอย่าง

ตัวอย่างต่อไปนี้แสดงการใช้ฟังก์ชัน strcoll()

#include <stdio.h>
#include <string.h>
int main () {
   char string1[20];
   char string2[20];
   int final;
   strcpy(string1, "WELCOME");
   strcpy(string2, "Welcome to the world!");
   final = strcoll(string1, string2);
   if(final > 0){
      printf(" string1 is greater than string2");
   } else if(final < 0) {
      printf("string1 is less than string2");
   } else {
      printf("string1 and string2 are equal");
   }
   return 0;
}

ผลลัพธ์

เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −

string1 is less than string2

ตัวอย่าง

มาดูอีกโปรแกรม

ต่อไปนี้เป็นโปรแกรมสำหรับเปรียบเทียบสองสตริงโดยใช้ strcoll ที่รันไทม์ -

#include <stdio.h>
int main (){
   char string1[20];
   char string2[20];
   int final;
   printf("enter string1:\n");
   gets(string1);
   printf("enter string2:\n");
   gets(string2);
   final = strcoll(string1, string2);
   if(final > 0){
      printf(" string1 is greater than string2");
   }
   else if(final < 0){
      printf("string1 is less than string2");
   }
   else{
      printf("string1 and string2 are equal");
   }
   return 0;
}

ผลลัพธ์

เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −

enter string1:
Tutorails Point
enter string2:
Point
string1 is greater than string2