将字符从char数组复制到char数组

时间:2015-11-04 18:38:15

标签: c++ c arrays char

我有一个大小为128的char数组。我想将前32个复制到另一个char数组。我正是这样做的:

char ticket[128];
data.readBytes(ticketLength, (BYTE*)ticket);
char sessionID[32];
strcpy(sessionID, ticket);

int userID = bdAuthService::checkLogin(sessionID);

" ticket"的内容是"11aa14462ac96a9b389686672b99fa9e1IvtooKO6eVxVHO6URIQld8jFaceTaker",当我试图将sessionID传递给checkLogin函数时,它获得与票证"11aa14462ac96a9b389686672b99fa9e1IvtooKO6eVxVHO6URIQld8jFaceTaker"相同的内容。

有人可以帮我吗?

2 个答案:

答案 0 :(得分:4)

改为使用memcpy功能。

memcpy( sessionID, ticket, sizeof( sessionID )  );

考虑到sessionID赢了; t包含一个字符串。它将包含" raw"字符。

对于函数strcpy,它被设计为复制字符串,这些字符串是以零结尾的字符序列。 因此,对于您的代码片段,它会复制尽可能多的字符,因为ticket中的字符在具有值' \ 0'的字符之前。只要ticket中存在这样的字符。

答案 1 :(得分:0)

您可以使用strncpy来指定要复制的字节数。