Ich wollte Elemente aus einer Zeichenfolge in eine andere Zeichenfolge übertragen und schrieb daher das folgende Programm. Anfangs dachte ich, dass die for-Schleife ausgeführt werden sollte, bis das NULL-Zeichen (einschließlich d. H.) Kopiert wurde. Aber in diesem Code endet die for-Schleife, wenn ein NULL-Zeichen gefunden wurde (d. H. Noch nicht kopiert wurde), aber es kann immer noch die Zeichenkette anzeigen, in die die Elemente kopiert wurden. Wie ist das möglich, wenn es überhaupt kein NULL-Zeichen gibt?Kopieren von Elementen von einem Zeichen-Array zu einem anderen
#include<stdio.h>
#include<stdlib.h>
int main()
{
char temp[100], str[100];
fgets(str, 100, stdin);
int i;
for(i = 0; str[i]!='\0'; i++)
{
temp[i] = str[i];
}
puts(temp);
return 0;
}
'NULL' ist ein Makro mit einer _null-Zeigerkonstante_. Dies ist hier irrelevant. Sie meinen das ASCII-Zeichen 'NUL' oder' nul' mit dem ganzzahligen Wert '0'. – Olaf
Lesen Sie über 'strcpy'. –
@Pete Becker Ich denke, das ist SEHR wahrscheinlich so etwas wie ein Hausaufgaben-/Tutorial-Problem (* d. H. * Beabsichtigt/entworfen, um die Probleme beim Kopieren von Zeichenfolgen zu erkennen **). Jemandem einfach zu sagen, dass er über "strcpy" lesen sollte, hilft nicht, dieses Verständnis zu fördern. – Tersosauros