使用strncpy将字符串复制到二维字符数组中
Copy string to two dimensional char array using strncpy
我有一个变量,字符串temp
;
temp
的值是一些字符串,它处于一个循环中,并且值不断变化。
我需要使用变量备份temp
变量中的字符串
char asset[8][256]
我尝试使用:
strncpy(&asset[8][256], temp.c_str(), 256)
但它仍然不起作用。我做错了什么?
你说你写了一个循环,但如果你每次都写同一个(顺便说一句,这是非法的)地址,你应该怎么写这行代码?
循环应该看起来像这样:
for (int i = 0; i < 8; ++i)
{
//...
strcpy(&asset[i][0], temp.c_str(), 256);
//...
}
您想要写入&asset[0][0]
、&asset[1][0]
、&asset[2][0]
等。写入&asset[8][256]
将开始写入该位置[8][256]
的字符串,这是越界的。
其次,如果您想要字符串的"备份",为什么要使用数组?为什么不备份一个std::vector<std::string>
而只备份push_back
的值呢?
#include <vector>
//...
std::vector<std::string> asset;
std::string temp;
//...
asset.push_back(temp); // backs up temp.
这不仅容易得多,而且不限于8个字符串,而且没有缓冲区溢出的机会。
相关文章:
- 移动二维数组中的字符
- C++ 传递二维字符数组
- 如何检查二维字符数组是否有空字
- 如何将二维数组类型字符(字符串)作为函数参数传递?
- 如何填充二维字符数组?C++
- 我如何用单词填充二维字符阵列
- 给出预定义的二维字符数组值
- 如何将二维字符类型数组逐行保存到 c 中的.txt文件中
- 二维字符数组C++
- 从C++文件中读取二维字符数组
- 将字符串复制到二维字符数组时出错
- 使用strncpy将字符串复制到二维字符数组中
- 比较 C++ 中的二维字符数组
- 给定一个二维字符矩阵,我们必须检查给定的单词是否存在于其中
- 正在将内存分配给二维字符数组,错误:从“void*”到“char**”的转换无效
- 在检查二维字符数组中的重叠时遇到麻烦
- 如何将字符变量存储为二维字符变量
- C/C++ 中的二维字符数组
- 将二维字符数组初始化为全空白时出现问题
- 对二维字符数组进行排序?C++