好吧,所以它是hw的一部分,我不能用字符串来帮助解决我的问题。我有点卡住,因为我需要使用那些字符数组。关于如何解决这个问题的任何提示?
int main()
{
struct structure
{
char name[15];
};
structure ObrLog[2]=
{
{"Bambi"},
{"Cindarella"},
};
ObrLog[1].nazwa="somethingnew"; //error here
}
答案 0 :(得分:2)
要将C字符串复制到缓冲区,请使用memcpy
。假设您的意思是name
而不是nazwa
,
char newval[] = "somethingnew";
// in a function
memcpy(ObrLog[1].name, newval, min(strlen(newval) + 1, sizeof(ObrLog[1].name));
ObrLog[1].name[14] = '\0'; // just to be sure the name is NUL-terminated
其中min
的定义留给读者作为练习。 +1
用于说明newval
末尾的隐含NUL。
答案 1 :(得分:0)
您无法像这样修改字符数组。您需要使用strcpy并注意缓冲区溢出。 (假设输入错误为nazwa
而不是name
)
strcpy(ObrLog[1].name, "somethingnew");