c – 确定字符串文字的长度

前端之家收集整理的这篇文章主要介绍了c – 确定字符串文字的长度前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
给定一个指向字符串文字的指针数组:
char *textMessages[] = {
    "Small text message","Slightly larger text message","A really large text message that "
    "is spread over multiple lines"
}

如何确定特定字符串字面量的长度 – 说第三个字符串?我已经尝试使用sizeof命令如下:

int size = sizeof(textMessages[2]);

但结果似乎是数组中的指针数,而不是字符串文字的长度.

解决方法

如果你想在编译时计算的数字(而不是在运行时使用strlen),那么使用一个表达式是完全可以的
sizeof "A really large text message that "
       "is spread over multiple lines";

你可能想使用一个宏来避免重复这个长的文字,尽管如此:

#define LONGLITERAL "A really large text message that " \
                    "is spread over multiple lines"

请注意,sizeof返回的值包括终止NUL,因此比strlen多一个.

猜你在找的C&C++相关文章