| |
/*
Datei: t_strcmp.cpp
Testprogramm fuer die Funktionen strcmpnew/strncmpnew.
*/
#include <stdio.h>
#include <conio.h>
#include <string.h>
//Header-Datei mit Definition der neuen Funktionen
#include "strcmpn.h"
void main()
{
puts("Testbench fuer die neuen C-Funktionen\n" \
"int strcmpnew(const char *str1, const char *str2)\n" \
"int strncmpnew(const char *str1, const char *str2, size_t n)\n\n");
puts("\t\t\t\t\t\tstrcmp\t\tstrcmpnew");
for(int z=0;z<20;z++)
{
printf("----");
}
getch();
/***************************************************/
//Test von strcmpnew
puts("\nVollstaendiger String-Vergleich (strcmp/strcmpnew)\n");
char *str1 = "gleich";
char *str2 = "gleich";
printf("\nstr1='%s'\t\t\t\t\t %i\t\t %i",str1,
strcmp(str1,str2),
strcmpnew(str1,str2));
printf("\nstr2='%s'\n",str2);
getch();
char *str3 = "gleich bis hier, dann verschieden";
char *str4 = "gleich bis hier, dann ungleich";
// str3 > str4
printf("\nstr1='%s'\t %i\t\t %i",str3,
strcmp(str3,str4),
strcmpnew(str3,str4));
printf("\nstr2='%s'\n",str4);
getch();
// umgekehrte Reihenfolge (str4 < str 3)
printf("\nstr1='%s'\t\t %i\t\t %i",str4,
strcmp(str4,str3),
strcmpnew(str4,str3));
printf("\nstr2='%s'\n",str3);
getch();
char *str5 = "";
char *str6 = "";
// str5 = str6 = "" (leer)
printf("\nstr1='%s'\t\t\t\t\t\t %i\t\t %i",str5,
strcmp(str5,str6),
strcmpnew(str5,str6));
printf("\nstr2='%s'\n",str6);
getch();
char *str7 = "nicht leer";
// leerer String - nicht leerer String
printf("\nstr1='%s'\t\t\t\t\t\t %i\t\t %i",str5,
strcmp(str5,str7),
strcmpnew(str5,str7));
printf("\nstr2='%s'\n",str7);
getch();
//umgekehrte Reihenfolge
printf("\nstr1='%s'\t\t\t\t %i\t\t %i",str7,
strcmp(str7,str5),
strcmpnew(str7,str5));
printf("\nstr2='%s'\n",str5);
getch();
/********************************************************/
//Test von strncmpnew
puts("\n\t\t\t\t\t\tstrncmp\t\tstrncmpnew");
for(z=0;z<20;z++)
{
printf("----");
}
puts("String-Vergleich bis zur n.-ten Stelle\n");
getch();
//Vergleich bis zum 22. Zeichen (bis dahin sind beide gleich)
puts("\nIst str1=str2 bis zur 22. Stelle (..dann ) ?");
printf("\nstr1='%s'\t %i\t\t %i",str3,
strncmp(str3,str4,22),
strncmpnew(str3,str4,22));
printf("\nstr2='%s'\n",str4);
puts("n = 22");
getch();
//Vergleich bis zu verschiedenem Zeichen
puts("\n\nIst str1=str2 bis zur 23. Stelle (..dann v bzw. u) ?");
printf("\nstr1='%s'\t %i\t\t %i",str3,
strncmp(str3,str4,23),
strncmpnew(str3,str4,23));
printf("\nstr2='%s'\n",str4);
puts("n = 23");
getch();
//umgekehrte Reihenfolge
puts("\n\nIst str1=str2 bis zur 23. Stelle (..dann u bzw. v) ?");
printf("\nstr1='%s'\t\t %i\t\t %i",str4,
strncmp(str4,str3,23),
strncmpnew(str4,str3,23));
printf("\nstr2='%s'\n",str3);
puts("n = 23");
getch();
//Vergleich von 0 Zeichen
puts("\n\nIst str1=str2 bis zur 0. Stelle ?");
printf("\nstr1='%s'\t\t %i\t\t %i",str4,
strncmp(str4,str3,0),
strncmpnew(str4,str3,0));
printf("\nstr2='%s'\n",str3);
puts("n = 0");
getch();
//n grösser als Stringlänge
puts("\n\nIst str1=str2 bis zur 100. (groesser als Stringlaenge) Stelle ?");
printf("\nstr1='%s'\t\t %i\t\t %i",str4,
strncmp(str4,str3,100),
strncmpnew(str4,str3,100));
printf("\nstr2='%s'\n",str3);
puts("n = 100");
getch();
puts("\n\nEnde des Tests\n");
getch();
}
|