c++ - 字符串数组中字符串的长度

标签 c++ arrays

我正在尝试在我的代码中使用单个字符串的大小。这是我的

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/

相关文章:

c++ - 使用 OpenCV 如何根据 x 和 y 坐标裁剪图像,并允许 x 和 y 坐标作为裁剪的中心?

c# - 如何将锯齿状数组绑定(bind)到 DataGridView 中?

c++ - 初始化字符数组有问题

c++ - 高效的数据结构,通过查找和插入将整数映射到整数,无分配和固定上限

c++ - 如何使用 Date 数据类型编写 mongocxx (v3) 查询?

c++ - 在 C++ 中的模板化基类中查找名称

php - 使用 PHP 从外部数组/API/URL 获取信息

c++ - 无法访问类中声明的私有(private)成员

iphone - 将索引分组的数组随机化(即 0-5 应该在一起)

javascript - 将临时变量分配给变量时异步函数的不同行为