Я хотел перенести элементы из строки в другую строку и, следовательно, написал следующую программу. Первоначально я думал, что цикл for должен выполняться до тех пор, пока не будет скопирован символ NULL (включая его i.e). Но в этом коде цикл for завершается, если найден NULL-символ (т. Е. Еще не скопирован), но он все еще способен отображать строку, в которой были скопированы элементы. Как это возможно, если вначале нет символа NULL?Копирование элементов из одного массива символов в другой
#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' - макрос с константой указателя _null. Здесь это не имеет значения. Вы имеете в виду символ ASCII 'NUL' или' nul' с целым значением '0'. – Olaf
Читайте о 'strcpy'. –
@Pete Becker Я думаю, что это ОЧЕНЬ вероятно будет чем-то вроде домашней/учебной проблемы (* i.e. * предназначено/предназначено для того, чтобы сделать одно ** осведомленным ** о проблемах с копированием строк). Просто говорить кому-то, что нужно читать о 'strcpy', не помогает понять это. – Tersosauros