Announcement

Collapse
No announcement yet.

Stringausgabe funktioniert nicht

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Stringausgabe funktioniert nicht

    Hallo Community,
    ich habe ein kleines Problem. Ich bin gerade dabei ein Programm zu schreiben was mir von zwei Codewörtern die Hamming-Distanz berechnet. Das klappt auch soweit ganz gut. Ich möchte alles dings gerne die Modulo 2 Additions der beiden Codewörter gerne ausgeben. Ich bekomme das ganze auch schon wunderbar in ein neues Char-Array gepackt. Nur bei der Ausgabe haperts.
    Ich habe den betroffenen Code mal auskommentiert. Das Problemm ist das ich das komplette array einzeln durlaufen muss um Zeichen für zeichen auszugeben.
    Das krieg ich so hin.

    Geht das nicht auch einfacher? Über Puts(v) ? Ich bekomme jedenfalls wenn ich es darüber versuche nicht meinen XOR Wert der beiden Codewörtern. Ebenso über Printf komme ich nicht zum ergebniss.

    Kann mit bitte jemand auf die Sprünge helfen.

    Code:
    #include <stdio.h>
    #include <conio.h>
    
    char HammingDistance(char Code[],char Code2[])
    {
    	int array_groese,Hamming;
    	char i;
    	char v[80]={' '};
    	array_groese =0;
    	Hamming =0;
    	
    	while (Code[array_groese]!='\0'){array_groese++;}//Größe des String-Arrays bestimmen
    	
    	for (i=0;i<=array_groese-1;i++)
    	{
    	 if ((Code[i]^Code2[i])==1){Hamming=Hamming+1;}
    	 //v[i] = (Code[i]^Code2[i]);//<<----- Wie kann ich diesen String ausgeben?
    	}
    
    	/*for (i=0;i<=array_groese-1;i++)
    	{
    	 printf("%d",v[i]);
    	}*/
    	
    	return(Hamming);
    }
    //--------------------------------------------------------------------------------------------------------
    int IstZiffer(char Eingabe[]) //Function die einen String auf 0 oder 1 durchsucht, werden andere Ziffern gefunden gibt sie 0 zurück
    {
    	int i,array_groese;
    	array_groese =0; //Initialisiert array_groeße
    
    	while (Eingabe[array_groese]!='\0'){array_groese++;} //Ermitteln der Array-Größe
    	for (i=0;i<=array_groese-1;i++)//Jedes Einzelne Zeichen im String überprüfen
    	{
    		if (Eingabe[i] >='0' && Eingabe[i] <= '1'){}//Wird ein Wert gefunden der 0 oder 1 ist mach nichts.
    		else {return(0);}//Wird ein Wert gefunden der nicht 0 oder 1 ist liefere eine 0 zurück	
    	}
    	return(1);	//Funktion ist korrekt durchgefallen nur Zahlen vom Typ 0 oder 1 enthalten, Funktion gibt den Wert 1 zurück
    }
    //--------------------------------------------------------------------------------------------------------
    void main()
    {
    	char Code2[80];
    	char Code1[80];
    	int i;
    	i=0;
    	printf("Bitte geben Sie Codewort 1 ein: ");
    	gets(Code1);
    	printf("Bitte geben Sie Codewort 2 ein: ");
    	gets(Code2);
    		
    	if((IstZiffer(Code1)&&IstZiffer(Code2))==1) {printf("Die Hamming-Distance betraegt HD:%d\n",HammingDistance(Code1,Code2));}
    	else {printf("Sie haben einen Falschen Binaer-Code eingegeben\n");}
    }

  • #2
    Geht das nicht auch einfacher? Über Puts(v) ? Ich bekomme jedenfalls wenn ich es darüber versuche nicht meinen XOR Wert der beiden Codewörtern. Ebenso über Printf komme ich nicht zum ergebniss.
    Ist kein Fehler...weshalb sollte es über printf nicht gehen?

    char test='m';
    printf("%c",(char*)test);
    Christian

    Comment

    Working...
    X