我怎样才能在C ++中编写一个将数据放入char数组的函数,我不知道如何解释,但我会写一个例子
void functionCopyData(char& buf){
// get data from a char variable
char data1 = "textdata1";
char data2 = "textdata2"
// copy data
copy(&buf,data1);
copy(&buf,data2);
}
char variable[20];
functionCopyData(&variable);
printf(variable);
// return: textdata1textdata2
总结一下,我需要从两个变量中复制数据并放入一个char数组。对不起,如果我不够清楚。
为什么这样?
因为我需要从变量中获取数据并在函数请求中发送参考数据sendFunction(&data,sizeVar);
我该怎么做?
答案 0 :(得分:0)
一个简单的解决方案是编写一个函数来复制一个数组,然后使用指向结果数组中不同位置的不同指针调用它两次。
例如,如果您有char data[20]
来保存结果,并希望复制两个数组char a[10]
和char b[10]
,那么请编写一个函数
void copy(char* destination, char* source, int length)
将length
个字节从源复制到目标,然后用
copy(data, a, 10);
copy(data+10, b, 10);
答案 1 :(得分:0)
答案 2 :(得分:0)
void functionCopyData(char* buf){
// get data from a char variable
char* data1 = "textdata1";
char* data2 = "textdata2"
// copy data
copy(buf,data1);
copy(buf,data2);
}
char variable[20];
functionCopyData(variable);
printf(variable);
我认为使用指针更明确但不是参考。
答案 3 :(得分:0)
如何在C ++中编写将数据放入char数组的函数
更改参数类型。
void functionCopyData(char& buf){
如果您只想更新一个字符而不是一个字符数组,那么会很好。要更新字符数组,请使用:
void functionCopyData(char buf[]){
或
void functionCopyData(char* buf){
如果buf
没有足够的内存来存储数据,那很容易导致问题。要使函数更健壮,请传递一个表示buf
void functionCopyData(char buf[], size_t capacity){
修正data1
和data2
。
char data1 = "textdata1";
char data2 = "textdata2"
在语法上没有效力。将它们更改为:
char data1[] = "textdata1";
char data2[] = "textdata2";
或
char const* data1 = "textdata1";
char const* data2 = "textdata2";
确保buf
可以容纳data1
和data2
。
// You need the additional 1 for the terminating null
// character.
size_t capacityNeeded = strlen(data1) + strlen(data2) + 1;
if ( capacityNeeded > capacity )
{
// Deal with the problem.
}
else
{
// Now copy the contents of data1 and data2 to buf
}
使用标准库函数将内容data1
和data2
复制到buf
。
strcpy(buf, data1);
strcat(buf, data2);
修复对该功能的调用。
functionCopyData(&variable);
在给定函数声明的情况下,不是用于调用函数的正确语法。使用:
functionCopyData(variable, 20);