如何获取/设置字符数组
how to get/set char array?
我试图在字符数组中排序2个值并读取它们。编译时没有错误/警告。但是程序一启动就崩溃了?
#define s_size 9
struct _struct {
public:
void SetItemName(int i, char *c) {
strcpy(item[i], c);
}
const char *GetItemName(int i) const {
return item[i];
}
private:
char* item[s_size];
};
_struct mystruct;
void Getvalue()
{
printf(mystruct.GetItemName(0));
}
void Setvalue( )
{
mystruct.SetItemName(0,"hello");
mystruct.SetItemName(1,"world");
Getvalue();
}
您应该使用现代c++风格,例如std::vector<std::string>
。
#include <cstddef>
#include <string>
#include <utility>
#include <vector>
struct {
public:
void SetItemName(std::size_t i, std::string s) {
if (i >= items.size()) {
items.resize(i + 1);
}
items[i] = std::move(s);
}
std::string const& GetItemName(std::size_t i) const {
return items[i];
}
private:
std::vector<std::string> items;
} mystruct;
这将为您做内存管理,以及调整字符串向量的大小和插入空字符串,如果有任何空白
相关文章:
- 提升区域设置规范化带状字符,但不规范化重音
- 将十六进制值设置为用于填充的字符变量时出现问题
- 注册表正在设置 1 个字符
- 是否有任何区域设置会影响宽字符编码?
- 我如何处理有关输入的字符串大小超过字符数组设置大小的错误?
- 以字符为单位设置控制台大小
- 将终端设置为原始模式:仅在按下下一个键后显示字符
- 将字符数组设置为彼此相等的方法不起作用
- 在无符号字符数组中设置无符号短字符
- 通过比较字符设置字符串时出现问题
- 无法使用 Unicode 特殊字符设置窗口文本
- 使用无符号字符设置文本格式
- 有没有办法为 TAB 字符(反斜杠 t)"t"设置特定数量的最大空格数C++?
- 如何将单个字符转换为为基本密码哈希器设置整数,C++
- 使用 getCurrentDirectoryW 不读取非区域设置字符
- 获取一些设置字符后的下一行
- 如何获取/设置字符数组
- 如何在c++中设置字符
- 如何从标准字符串 (c_str()) 中设置字符 * 值不起作用
- 使用 c_str() 设置字符数组