Thread Ganze Zeile einlesen incl. Leerzeichen: ANSI C (21 answers)
Opened by format_c at 2005-11-17 14:27

format_c
 2005-11-19 16:11
#11286 #11286
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Och menno,
so richtig wills noch nicht.
Ich hab in meiner Funktion die eine art join - Funktion ist versucht das ueber statische pointer zu machen aber da gibts auch nur trouble. jetzt hab ich das mit malloc probiert wobei ich dabei nicht weis wie ich da das free einbauen soll.

Code: (dl )
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;
}


Da sagt er mir, dass er nicht void * zu char * convertieren koenne. Auf wikipedia stehts aber so als beispiel mit int da.

Und wenn ich es statisch versuche sagt er mir immer non-lvalue in assignment ???? Was mir auch immer diese Fehlermeldung sagen soll.
Hier der Code mit dem Statischen Versuch.
Code: (dl )
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;
}


Sorry dass ich schon wieder nerve. ich hoffe ich peil's irgendwann.

Gruß Alex

View full thread Ganze Zeile einlesen incl. Leerzeichen: ANSI C