blob: d626bd3a1469d6a54557584cc96aba1d18c6204b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#include <stdio.h>
/* Compare S1 and S2, returning less than, equal to or
greater than zero if S1 is lexicographically less than,
equal to or greater than S2. */
int strcmp (const char *p1, const char *p2)
{
const unsigned char *s1 = (const unsigned char *) p1;
const unsigned char *s2 = (const unsigned char *) p2;
unsigned char c1, c2;
// print out input values
printf("strcmp('%s', '%s')", p1, p2);
do
{
c1 = (unsigned char) *s1++;
c2 = (unsigned char) *s2++;
if (c1 == '\0') {
// print return value
printf(" = %d\n", c1 - c2);
return c1 - c2;
}
}
while (c1 == c2);
printf(" = %d\n", c1 - c2);
return c1 - c2;
}
|