我正在尝试在我的代码中使用单个字符串的大小。这是我的
const static char * keypad[] = {
"ex",
"bobbb",
"test",
};
但是当我尝试使用,例如,
sizeof(keypad[i]);
它不会为每个字符串返回正确的大小。反正有没有在 C++ 中做到这一点?我限于
#include <stdio.h>
#include <ctype.h>
出于某种任意原因。
最佳答案
keypad
不是字符串 的数组。它是一个指针数组,每个指针都指向一个 C 风格字符串(的第一个字符)。
sizeof keypad[i]
为您提供这些指针之一的字节大小,可能是 4 或 8 个字节。
确定字符串的长度(定义为不超过终止'\0'
空字符的字符数)的方法是调用strlen()
功能。如果不允许您使用 <string.h>
,您必须自己编写等效函数。
(您可以合法地声明 strlen
而不包括 <string.h>
,但我认为这会被视为作弊,所以我不会告诉您如何去做。)
(在 C++ 中真正的方法是定义一个 std::vector<std::string>
,但显然你不被允许这样做。也许当前练习的部分要点是向您展示不同方法的便利程度。)
关于c++ - 字符串数组中字符串的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33534806/