http://www.cplusplus.com/reference/cstring/strcmp/
http://www.tutorialspoint.com/c_standard_library/c_function_strcmp.htm
for the pseudocode: http://stackoverflow.com/questions/12136329/how-does-strcmp-work
http://en.cppreference.com/w/c/string/byte/strncmp
example:
#include<string.h> #include<stdio.h> demo(const char* lhs,const char* rhs) { int rc=strcmp(lhs,rhs); if(rc==0) printf("[%s] equals [%s]\n",lhs,rhs); else if(rc<0) printf("[%s] precedes [%s]\n",lhs,rhs); else if(rc>0) printf("[%s] follows [%s]\n",lhs,rhs); } int main(void) { const char* string="Hello World!"; demo(string, "Hello!"); demo(string, "Hello"); demo(string,"Hello there"); demo("Hello, everybody!" + 12, "Hello, somebody!" + 11); }
here we are actually comparing the contents of lhs and contents of rhs that is passing from the main function.
declaration can be done by this in nay function
int strcmp(const char* str1,const char* str2)
algorithm should be like this:
define strcmp(str1,str2) p1=address of first character of str1 p2=address of first character of str2 while contents of p1 is not equal to null. if contents of p22 equal to null return 1 if contents of p2 greater than contents of p1 return -1 if contents of p1 greater than contents of p2 return 1 if contents of p2 not equal to null return -1
Two things to remember we are defining here the address value not the length of the string and so it is the comparison between contents of the strings not the length . 🙂