| 
              #include <stdio.h>#include <conio.h>
 
 unsigned int len(char *str)
 {
 unsigned int count;
 for (count = 0; *str != '\0'; str++, count++);
 return count;
 }
 
 void copy(char *dest, char* str)
 {
 while (*str != '\0')
 {
 *dest = *str;
 *dest++;
 *str++;
 }
 *dest = '\0';
 }
 
 void concat(char *dest, char* str)
 {
 dest += len(dest);
 copy(dest, str);
 }
 
 char equal(char *strA, char *strB)
 {
 char flag = 1;
 while (*strA != '\0')
 {
 if (*strB != *strA)
 {
 flag = 0;
 break;
 }
 strA++;
 strB++;
 }
 if (flag == 1 && *strA == '\0' && *strB != '\0')
 flag = 0; // Exception: st != str1
 return flag;
 }
 
 void show_equal(char* strA, char* strB)
 {
 if (equal(strA, strB))
 printf("\t\"%s\" and \"%s\" are the same.\n", strA, strB);
 else
 printf("\t\"%s\" and \"%s\" are different.\n", strA, strB);
 }
 
 void main()
 {
 char str1[20] = "Hello";
 char str2[] = " World!";
 concat(str1, str2);
 
 printf("The length of str1 is %d.\n", len(str1));
 printf("%s\n", str1);
 
 printf("Now some strings will be compared:\n");
 show_equal("str1", "str1");
 show_equal("sdr1", "str1");
 show_equal("Str1", "str1");
 show_equal("str2", "str1");
 show_equal("st", "str1");
 show_equal("str1", "st");
 show_equal("", "");
 show_equal("not_empty", "");
 show_equal("", "not_empty");
 show_equal(str1, "Hello World!");
 _getch();
 }
 |