函数复制引用字符数组中的数据
Function to copy data in a reference char array
我如何用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);
我该怎么做?
我如何用C++编写一个将数据放入字符数组的函数
-
更改参数类型。
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);
一个简单的解决方案是编写一个函数来复制一个数组,然后用指向结果数组中不同位置的不同指针调用它两次。
例如,如果您有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);
函数strcpy
和strlen
可以帮助您:
#include <string.h>
void functionCopyData(char buf[]){
char data1[] = "textdata1";
char data2[] = "textdata2";
strcpy(buf, data1);
strcpy(buf+strlen(buf), data2);
}
...
functionCopyData(variable);
...
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);
我认为使用指针而不是引用更清楚。
相关文章:
- C++将文本文件中的数据读取到结构数组中
- 通过JNI传递数据数组的最快方法是什么
- C++数据文件、数组和计算赋值
- 使用指针访问数组中的对象数据成员
- C++ 使用存储在动态数组中的文本文件中的数据查找模式
- C++:__aligned(__alignof__) 导致字符数组数据出现问题?
- 很好的语法来获取对向量/数组数据的大小引用?
- 创建异构顶点数据数组的可移植方法
- 模板 使用数据数组调用函数时扩展参数包
- 如何在 c++ 和 java 之间通过 udp 有效地发送数据数组
- 如何使用模板函数从缓冲区(T* 数据数组)创建 cv::Mat
- 如何连接 2D 数据数组
- 如何使用GStreamer播放PCM数据数组
- P/Invoke使用C#和C++之间的双编组数据数组
- 如何在文件中保存/读取数据数组 (C++)
- Android & JNI 如何将 Byte[] 数据数组传递给 JNI 并取回 Byte []
- C++ 通过多次重复向量来构建数据数组
- 尝试使用pthreads访问共享数据数组时,出现“无法访问内存地址”错误
- Qt存储和访问大数据数组
- 在c++中初始化一些数据数组