Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 这是指向大小为3的字符数组的指针数组的正确语法吗?_C++ - Fatal编程技术网

C++ 这是指向大小为3的字符数组的指针数组的正确语法吗?

C++ 这是指向大小为3的字符数组的指针数组的正确语法吗?,c++,C++,我正在尝试制作自己版本的“自动更正”程序,用于检查与给定单词相似的单词。为了实现这一点,我需要查看标准键盘上字母之间的距离,这样我就有了一个衡量一个单词与另一个单词“接近”程度的指标 在我的程序中,我开始编写一个数组 const char[3]* KEY_DISTS[] = { "aa0", "ab5", "ba5", "ac3", "ca3", "ad2", "da2" ,... }; 这意味着“a和a之间的距离是0,'a'和'b'之间的距离是5,'b'和'a'之间的距离是5”,等等 接下来

我正在尝试制作自己版本的“自动更正”程序,用于检查与给定单词相似的单词。为了实现这一点,我需要查看标准键盘上字母之间的距离,这样我就有了一个衡量一个单词与另一个单词“接近”程度的指标

在我的程序中,我开始编写一个数组

const char[3]* KEY_DISTS[] = { "aa0", "ab5", "ba5", "ac3", "ca3", "ad2", "da2" ,... };
这意味着“a和a之间的距离是0,'a'和'b'之间的距离是5,'b'和'a'之间的距离是5”,等等

接下来我将把这些信息放在一个映射图中,将成对的字符映射为整数,但我想知道到目前为止它是否写得正确,您是否有任何建议给我

const char[3]* KEY_DISTS[]

应该表示“指向大小为3的字符数组的指针的常量数组”,对吗?

与标题匹配的声明应该是:

const char (*arr[])[4] = { &"aa0" };
请注意,
“arr”
是一个由四个字符组成的数组(它包括终止
'\0'
),您需要获取字符串literal的地址(它们是左值,具有静态存储持续时间,因此这是可以接受的)

听起来您可以使用2D阵列来代替:

const char arr[][4] = { "aa0" };

为什么您首先需要该阵列?为什么不直接初始化地图呢?或者为什么不使用文件进行读取?还要注意的是,距离取决于键盘布局……听起来你真的想要“一个大小为3的字符数组”。。。换句话说,
const char KEY_DISTS[][3]=…
。还请注意,字符串文字是一个const char数组,但比字母数多一个元素(因为末尾有一个空终止字符)。所以你需要每个数组的大小为4。是的,我想我要把它们写在一个文本文件中。这将永远需要lol.26 x 26=676成对距离。