avuton
09-01-2003, 09:16
Hallo kann mir jemand sagen, warum da folgende Programm nur Hans Peter 0 und nicht Hans Peter 16 ausgibt?
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
#include <string.h>
struct daten{
char mvorname[255];
char mnachname[255];
int malter;
};
int zeile_analyse(char *zeile, char *feld, char trenn){
int i=0;
while(zeile[i]!=trenn){
i++;
if(i>255){
i=0;
break;
}
}
if(i==0){
feld=zeile;
zeile="";
}
else{
memcpy(feld, zeile, i);
memcpy(zeile, zeile +i +1, 255 -i);
feld[i]='\0';
}
if(strlen(zeile)==0)
return 0;
else
return 1;
}
int schreibe(char *zeile, char *record){
struct daten angab[2];
int j;
int i=0;
char feld[255];
char trenn=';';
while(strlen(zeile)!=0){
j=zeile_analyse(zeile, feld, trenn);
//printf("\n%s\t%s",feld,zeile);
i++;
if(j==0)
break;
//sprintf(angab, record);
//angab=record;
switch(i){
case 1:
strcpy(angab[0].mvorname, feld);
break;
case 2:
strcpy(angab[0].mnachname, feld);
break;
case 3:
angab[0].malter=feld;
break;
}
}
printf("%s %s %d", angab[0].mvorname, angab[0].mnachname, angab[0].malter);
return 0;
}
main(){
char record[255];
char zeile[255];
sprintf(zeile, "hans;peter;16");
schreibe(zeile, record);
return 0;
}
danke
#include <stdio.h>
#include <stdlib.h>
#include <memory.h>
#include <string.h>
struct daten{
char mvorname[255];
char mnachname[255];
int malter;
};
int zeile_analyse(char *zeile, char *feld, char trenn){
int i=0;
while(zeile[i]!=trenn){
i++;
if(i>255){
i=0;
break;
}
}
if(i==0){
feld=zeile;
zeile="";
}
else{
memcpy(feld, zeile, i);
memcpy(zeile, zeile +i +1, 255 -i);
feld[i]='\0';
}
if(strlen(zeile)==0)
return 0;
else
return 1;
}
int schreibe(char *zeile, char *record){
struct daten angab[2];
int j;
int i=0;
char feld[255];
char trenn=';';
while(strlen(zeile)!=0){
j=zeile_analyse(zeile, feld, trenn);
//printf("\n%s\t%s",feld,zeile);
i++;
if(j==0)
break;
//sprintf(angab, record);
//angab=record;
switch(i){
case 1:
strcpy(angab[0].mvorname, feld);
break;
case 2:
strcpy(angab[0].mnachname, feld);
break;
case 3:
angab[0].malter=feld;
break;
}
}
printf("%s %s %d", angab[0].mvorname, angab[0].mnachname, angab[0].malter);
return 0;
}
main(){
char record[255];
char zeile[255];
sprintf(zeile, "hans;peter;16");
schreibe(zeile, record);
return 0;
}
danke