Ich habe ein einfaches Programm geschrieben, das ein Array umkehrt. Zum Beispiel würde die Zeichenfolge "Hallo" als "olleh" ausgedruckt werden. Wenn ich jedoch etwas wie "Hallo" eingib, druckt es die Hälfte der umgekehrten Zeichenfolge aus, gefolgt von einigen kryptischen Zeichen und anderem Unsinn, der nicht da sein sollte.Warum wird mein Array falsch gedruckt?
Mein Quellcode ist wie folgt:
#include <stdio.h>
#include <string.h>
int main()
{
char str[100], temp;
int i = 0, j = 0;
printf("Enter a string:\n");
fgets(str, 100, stdin);
// scanf("%s", &str);
j = strlen(str) - 1;
while (i < j) {
temp = str[i];
str[i] = str[j];
str[j] = str[temp];
i++;
j--;
}
printf("The reversed string is: %s", str);
return (0);
}
Einige der Ausgang ich erhalte, ist ‚oll‘ dann ein kleines Quadrat mit vier Zahlen nach innen. Dies kann variieren und manchmal "olx" oder "olH" oder sogar "ol" mit einem Fragezeichen in Rautenform drucken. Warum funktioniert mein Programm nicht so wie es sollte? Enthält das Array bereits andere codierte Informationen?
sein Sollte es nicht str sein [j] = temp; statt str [j] = str [temp]; ? –