| 
            
            
             
              #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(); }             
                       |