PDA

View Full Version : سوال: strcmp اول ادرس رو مقایسه می کنه ؟



H_G_G_I
چهارشنبه 06 دی 1391, 20:23 عصر
سلام یه سوال ساده ! سریع ج بدین !
خود strcmp اول ادرس دو تا رشته ای که بهش می دیم رو نگاه می کنه یا نه ؟؟؟؟؟؟؟؟:متفکر:
چون ادرس ها که یکی باشه رشته هم یکیه پس لازم نیست الکی کاراکتر ها مقایسه شن !

aidinMC
چهارشنبه 06 دی 1391, 21:13 عصر
int strcmp (const char *p1, const char *p2)
{
register const unsigned char *s1 = (const unsigned char *) p1;
register const unsigned char *s2 = (const unsigned char *) p2;
unsigned reg_char c1, c2;

do
{
c1 = (unsigned char) *s1++;
c2 = (unsigned char) *s2++;
if (c1 == '\0')
return c1 - c2;
}
while (c1 == c2);

return c1 - c2;
}

hadi0x7c7
چهارشنبه 06 دی 1391, 21:15 عصر
اینو ببین :
/* strcmp: return <0 if s<t, 0 if s==t, >0 if s>t */
int strcmp(char *s, char *t)
{
for ( ; *s == *t; s++, t++)
if (*s == '\0')
return 0;
return *s - *t;
}

اصولا ما یه رشته رو با خودش مقایسه نمیکنیم ؟ میکنیم ؟ در ضمن مقایسه فقط واسه تساوی که نیستش ! کو چکتر و بزرگتر هم شامل میشه.

H_G_G_I
چهارشنبه 06 دی 1391, 21:41 عصر
بله می دونم با خوش مقایسه نمی کنیم !
ولی من به دلایلی نیاز داشتم که بفههم ادرس رو مقایسه می کنه یا نه ! پس نمی کنه !
ممنون ×_O