问题
I have an array of structs, each struct has a char array and an int.
typedef struct {
int id; //Each struct has an id
char input[80]; //Each struct has a char array
} inpstruct;
inpstruct history[10]; //Array of structs is created
I have another char array that contains the user's input
char inputBuffer[80];
The user enters a word followed by the \n
character. For example, inputBuffer
will contain 3 chars: 'l'
's'
'\n'
.
I want to copy all the chars in inputBuffer
into history[index].input
I have tried using:
strcpy(history[index].input, inputBuffer);
But since inputBuffer
is not null terminated it does not work. How can I copy all the chars from inputBuffer
into history[index].input
?
回答1:
You want to memcpy
memcpy(history[index].input, inputBuffer, sizeof(inputBuffer)*sizeof(inputBuffer[0]));
来源:https://stackoverflow.com/questions/28220194/copy-contents-of-non-null-terminated-char-array-into-another-char-array