SuumDaHead
Mitglied
Hallo Leute 
ich hab da wieder ne Aufgabe dich versucht hab zu lösen!
Hier mal die Aufgabe:
Definieren Sie eine Funktion strInsert, die einen String an einer bestimmten Position eines anderen Strings einfügt. Die Funktion enthält drei Argumente:
1. der String, in den eingefügt wird,
2. der einzufügende String und
3. die Einfügeposition.
Dabei bedeutet die Position 0, dass der zweite String vor dem ersten eingefügt wird.
Die Funktion gibt die neue länge des ersten Strings zurück. Falls die Einfügeposition ungültig sein sollte, d.h. negativ oder länger als die Länge des ersten Strings, ist der Wert -1 zurückzugeben
Nun meine versuchter Lösungsansatz:
Wär von euch wieder jemand so freundlich und könte mir sagen wo Fehler sind oder ob das ganze funktioniern würde ?
Mfg Summi

ich hab da wieder ne Aufgabe dich versucht hab zu lösen!
Hier mal die Aufgabe:
Definieren Sie eine Funktion strInsert, die einen String an einer bestimmten Position eines anderen Strings einfügt. Die Funktion enthält drei Argumente:
1. der String, in den eingefügt wird,
2. der einzufügende String und
3. die Einfügeposition.
Dabei bedeutet die Position 0, dass der zweite String vor dem ersten eingefügt wird.
Die Funktion gibt die neue länge des ersten Strings zurück. Falls die Einfügeposition ungültig sein sollte, d.h. negativ oder länger als die Länge des ersten Strings, ist der Wert -1 zurückzugeben
Nun meine versuchter Lösungsansatz:
Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int strInsert(char str1[], const char str2[], int pos )
{
int len1 = (int)strlen(str1);
int len2 = (int)strlen(str2);
int i, j;
if(pos < 0 || pos > len1)
return -1;
if(len2 == 0)
return len1;
for(i = len1, j = len1 + len2; i>=pos; --i, --j)
str1[j] = str2[i];
for(i = 0, j = pos; str2[i] != '\n'; ++i, ++j)
str1[j] = str2[i];
return len1 + len2;
}
Wär von euch wieder jemand so freundlich und könte mir sagen wo Fehler sind oder ob das ganze funktioniern würde ?
Mfg Summi
