Tôi muốn chuyển các phần tử từ chuỗi này sang chuỗi khác và do đó đã viết chương trình sau. Ban đầu, tôi nghĩ rằng vòng lặp for nên thực hiện cho đến khi ký tự NULL (bao gồm cả nó tức là) đã được sao chép. Nhưng trong mã này, vòng lặp for kết thúc nếu một ký tự NULL đã được tìm thấy (nghĩa là, chưa được sao chép), nhưng nó vẫn có thể hiển thị chuỗi trong đó các phần tử đã được sao chép. Làm thế nào là điều này có thể, nếu không có nhân vật NULL ở nơi đầu tiên?Sao chép các phần tử từ một mảng ký tự sang một dải ký tự khác
#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' là macro có hằng số _null pointer_. Điều này không liên quan ở đây. Bạn có nghĩa là ký tự 'NUL' hoặc' nul' ASCII với giá trị số nguyên '0'. – Olaf
Đọc về 'strcpy'. –
@Pete Becker Tôi nghĩ rằng điều này rất có thể giống như bài tập về nhà/hướng dẫn (* nghĩa là * dự định/được thiết kế để làm cho ** nhận thức ** về các vấn đề với chuỗi sao chép). Đơn giản chỉ cần nói với ai đó để đọc về 'strcpy' không giúp mang lại sự hiểu biết đó. – Tersosauros