C字符串数组

mar*_*nev 5 c arrays string

我想创建一个字符串数组.问题是我希望能够静态访问每个字符串的长度.我试过这个:

char *a[] = {"foo", "foobar"};
Run Code Online (Sandbox Code Playgroud)

数组工作正常,但我想静态地知道每个元素的长度.我无法使用,sizeof(a[0])因为它返回char *指针的大小.我想要的是字符串大小的长度(对于[0]为4,对于[1]为7).

有没有办法做到这一点?

Oli*_*rth 4

简而言之,不,不是在编译时(至少不是对于任意数量的字符串)。正如其他人指出的那样,您可以执行各种类似运行时初始化的操作。正如其他人指出的那样,对于固定数量的字符串有解决方案。

的类型a[0]必须与(显然)相同a[1]。因此sizeof()对于 的所有值必须求得相同的值a[i]