Frage zu Arrays
-
also ich habe jetzt das mal mit strcat versucht, klappt aber nicht, der setzt mir immer das Leerzeichen ans Ende aller Strings, ich habe aber mal ne Ausgabe in der Schleife gemacht und daraus kann ich sehen, dass er wirklich Zeile für Zeile einließt, nur läßt sich einfach nicht ans Ende der ersten Zeile im File Ausgabetext das Leerzeichen anhängen!
Vielleicht siehst du ja den Fehler
FILE *quelle;
char buffer2[81];
quelle = fopen("f:\Morsecode.txt","r");//Zeile einlesen
while( !feof( quelle ) ) {
fgets( buffer2, sizeof(buffer2), quelle );//1. Zeile einlesen
{
Ausgabefunktion(buffer2);//zerlege Zeile per strtok()
char* ptr=strtok(buffer2,"\n\t ");do
{//ptr mit morse vergleichen
for ( i=0; i<28; i++)
if(strcmp(ptr,morse[i])==0){
Ausgabetext[j]=alpha[i];
j=j++;break;
}
strcat(Ausgabetext," ");
ptr=strtok(NULL,"\n\t ");}
while(ptr!=NULL);}
Ausgabefunktion(Ausgabetext);}
-
Du mußt das strtok() auch nicht nach jedem geparsten Zeichen aufrufen, sondern immer nur am Ende der jeweiligen Zeile.
PS: Der Ausdruck
j=j++;
ist sinnlos. Wenn du die Variable erhöhen willst, geht das entweder mitj++;
oder mitj=j+1;
, aber nicht mit einer wilden Kombination aus beidem.
-
CStoll schrieb:
PS: Der Ausdruck
j=j++;
ist sinnlos.sieht zwar doof aus, müsste aber auch gehen...
-
Nein, müsste er nicht. Wenn du Pech hast, bewirkt der Ausdruck gar nichts, weil die Zuweisung zuletzt ausgeführt wird und die Wirkung des Inkrement-Operators wieder aufhebt.
(Merke: Es ist generell nicht gut, in einem Ausdruck mehrere Nebeneffekte zu haben - besonders wenn sie die selbe Variable betreffen)
-
geht auch^^ auch wenn es nicht die schönste Wahl ist, was aber net geht, ist der anhang eines Leerzeichens:-( Egal wo ich strtok setze, kommt am schluss nur der gesamte String ohne Leerzeichen zwischen den einzelnen Zeilen raus!