C如何打印字符串数组中字符串的大小
Posted
技术标签:
【中文标题】C如何打印字符串数组中字符串的大小【英文标题】:C How do I print the size of a string in array of strings 【发布时间】:2020-08-09 15:27:00 【问题描述】:我有以下代码:
int main()
char** a = "bob", "alex", "john";
for (int i = 0; i < 3; i++)
printf('%d', sizeof(a[i]));
我在这里尝试做的是初始化一个字符串数组,遍历它并打印每个单词的大小。但我得到分段错误。我的方法有什么问题?
【问题讨论】:
我建议您在***.com/questions/33746434/…查看接受的答案 这能回答你的问题吗? Double pointer vs array of pointers(**array vs *array[]) 【参考方案1】:这是一个工作代码:
#include <stdio.h>
int main()
char* a[3] = "bob", "alex", "john";
for (int i = 0; i < 3; i++)
printf("%d\n", strlen(a[i]));
请注意,区别在于char* a[3]
而不是char**
、"%d"
而不是'%d'
和strlen
而不是sizeof
。
【讨论】:
Nit-pick:strlen()
返回一个 size_t
类型的值。 size_t
的正确格式说明符是 %zu
。以上是关于C如何打印字符串数组中字符串的大小的主要内容,如果未能解决你的问题,请参考以下文章