تابع strcmp در سی پلاس

saalek110

Well-Known Member
چون می دانم با توربو سی چهار و نیم کار می کنید من هم از help این کامپایلر نقل می کنم:

strcmp

Syntax

#include <string.h>
int strcmp(const char *s1, const char *s2);

Description

Compares one string to another.
strcmp performs an unsigned comparison of s1 to s2, starting with the first character in each string and
continuing with subsequent characters until the corresponding characters differ or until the end of the strings is
reached.

Return Value

If s1 is... strcmp returns a value that is...​

less than s2 < 0
the same as s2 == 0
greater than s2 > 0
 

saalek110

Well-Known Member
باز هم از help :
مثال :
کد:
/* strcmp example */

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

int main(void)
{
	char *buf1 = "aaa", *buf2 = "bbb", *buf3 = "ccc";
	int ptr;

	ptr = strcmp(buf2, buf1);
	if (ptr > 0)
      printf("buffer 2 is greater than buffer 1\n");
   else
      printf("buffer 2 is less than buffer 1\n");

   ptr = strcmp(buf2, buf3);
   if (ptr > 0)
      printf("buffer 2 is greater than buffer 3\n");
   else
      printf("buffer 2 is less than buffer 3\n");

   return 0;
}

نتیجه اجرا:
buffer 2 is greater than buffer 1
buffer 2 is less than buffer 3​
 

saalek110

Well-Known Member
در پست قبلی بافر 1 برابر aaa و بافر 2 برابر bbb بود و تابع strcmp مقدار مثبت داده. یعنی با این مقدار مثبت به ما می گوید که ورودی اولی که به این تابع دادیم بزرگتر از ورودی دومش است. من با چاپ ptr دیدم مقدارش 1 است.
--------------------------------------------

بعد بافر 2 را aaa کردم یعنی مشابه بافر 1 که :
مقدار ptr برابر صفر شد.

----------
بعد بافر 2 را aaaa کردم. یعنی چهار تا a که:
مقدار ptr برابر 97 شد. که فکر کنم کد اسکی a باشد. (وقتی aaaA ) کردم 65 داد که برای A است)

--------
بعد بافر 2 را aab دادم که :
که ptr برابر 1 شد.
 

جدیدترین ارسال ها

بالا