Why is my implementation of strcmp not returning the proper value?
Posted
by
Avanish Giri
on Stack Overflow
See other posts from Stack Overflow
or by Avanish Giri
Published on 2012-06-20T08:48:56Z
Indexed on
2012/06/20
9:16 UTC
Read the original article
Hit count: 240
Why is this printing out 0 back in main but 6 when it is inside of the strcmp function?
7 int main()
8 {
9 char* str = "test string";
10 char* str2 = "test strong";
11 //printf("string length = %d\n",strlen(str));
12
13 int num = strcmp(str,str2);
14
15 printf("num = %d\n",num);
16 }
29 int strcmp(char* str, char* str2)
30 {
31 if(*str == '\0' && *str2 == '\0')
32 return 0;
33 if(*str2 - *str == 0)
34 {
35 strcmp(str+1,str2+1);
36 }
37 else
38 {
39 int num = *str2 - *str;
40 cout << "num = " <<num<<endl;
41 return num;
42 }
43 }
The output is:
num = 6 num = 0
Why is it printing 0 when obviously the value that it should be returning is 6?
© Stack Overflow or respective owner