|< 1 2 3 >| | 22 Einträge, 3 Seiten |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
char * join(char ** woerter,int anzahl,char * str) {
int letter_count=0;
int sl=strlen(str);
for (int i=0;i<anzahl;i++) {
letter_count+=strlen(woerter[i]);
if (i<anzahl-1)
letter_count+=sl;
}
char * pstr=malloc(sizeof(char)*(letter_count+1));
if (pstr==NULL)
exit(1);//Error to allocate Memory
char * joined=pstr;
for (int i=0;i<anzahl;i++) {
char * wp=woerter[i];
int wl=strlen(wp);
for (int j=0;j<wl;j++) {
*pstr=*wp;
pstr++;
wp++;
}
if (i<anzahl-1) {
char * sp=str;
for (int k=0;k<sl;k++) {
*pstr=*sp;
pstr++;
sp++;
}
}
}
*pstr=0;
return joined;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
char * join(char ** woerter,int anzahl,char * str) {
int letter_count=0;
int sl=strlen(str);
for (int i=0;i<anzahl;i++) {
letter_count+=strlen(woerter[i]);
if (i<anzahl-1)
letter_count+=sl;
}
char pstr[letter_count+1];
char * joined=pstr;
for (int i=0;i<anzahl;i++) {
char * wp=woerter[i];
int wl=strlen(wp);
for (int j=0;j<wl;j++) {
*pstr=*wp;
pstr++;
wp++;
}
if (i<anzahl-1) {
char * sp=str;
for (int k=0;k<sl;k++) {
*pstr=*sp;
pstr++;
sp++;
}
}
}
*pstr=0;
return joined;
}
pstr=(char*)malloc(sizeof(char)*(letter_count+1));
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
char *join(const char **woerter, int anzahl, const char *sep) {
char *retval = NULL, *wort = NULL;
int seplen = 0, wortlen = 0, size = 0, len = 0;
if(woerter == NULL || anzahl == 0 || sep == NULL)
return NULL;
seplen = strlen(sep);
wort = *woerter++;
while(anzahl > 0 && wort != NULL) {
wortlen = strlen(wort);
size += wortlen + 1;
if(anzahl > 0) size += seplen;
if(retval == NULL) retval = (char *)malloc(size);
else retval = (char *)realloc(retval, size);
strncpy(retval + len, wort, wortlen);
len += wortlen;
if(anzahl > 0) {
strncpy(retval + len, sep, seplen);
len += seplen;
}
wort = *woerter++; --anzahl;
}
return retval;
}
Quoteda sagt er mir, dass er nicht void * zu char * convertieren koenne
|< 1 2 3 >| | 22 Einträge, 3 Seiten |