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