Hallo,
ich arbeite mit einem älteren C++ Compiler. Da mit diesem Compiler 14 MB Code geschrieben wurden und diese nicht so einfach auf einen neueren Compiler übertragen werden können, würde ich gerne den relativ neuen Befehl "strcpy_s" nachbauen. Dieser Befehl verhindert ja Abstürze, wenn ein zu langer Wert in den String kopiert wird.
Soweit bin ich allein gekommen:
Wie man sehen kann, schaffe ich es nicht, die Länge des Strings "str_sec_1" in der Unterfunktion "strcpy_s" zu ermitteln. Hat jemand eine Idee? Wäre wirklich großartig.
ich arbeite mit einem älteren C++ Compiler. Da mit diesem Compiler 14 MB Code geschrieben wurden und diese nicht so einfach auf einen neueren Compiler übertragen werden können, würde ich gerne den relativ neuen Befehl "strcpy_s" nachbauen. Dieser Befehl verhindert ja Abstürze, wenn ein zu langer Wert in den String kopiert wird.
Soweit bin ich allein gekommen:
Code:
#include <stdio.h> #include <string.h> #include <conio.h> char string1[11]; char string2[21]; void strcpy_s (char* str_sec_1, char* str_sec_2); int main(void) { strcpy(string2, "12345678901234567890"); clrscr(); strcpy_s(string1, string2); gotoxy(10,13); printf("String1 nachher = %s\n", string1); getch(); return 0; } void strcpy_s (char* str_sec_1, char* str_sec_2) { int laenge_str_sec_1; int x_sq; gotoxy(10,9); printf("Länge Variable string1 =%i", sizeof(string1) - 1); // richtig = 10 gotoxy(10,10); printf("Länge Variable str_sec_1=%i", sizeof(str_sec_1) - 1); // leider falsch = 1 statt 10 laenge_str_sec_1 = sizeof(str_sec_1) - 1; if ((strlen(str_sec_2)) > laenge_str_sec_1) { gotoxy(1,25); printf("Der String ist zu lang. Er wird abgeschnitten. Weiter nach Tastendruck!"); getch(); strncpy(str_sec_1, str_sec_2, laenge_str_sec_1); str_sec_1[laenge_str_sec_1] = '\0'; } }
Comment