【问题标题】:C How do I print the size of a string in array of stringsC如何打印字符串数组中字符串的大小
【发布时间】:2023-03-07 08:16:01
【问题描述】:

我有以下代码:

int main() {
    char** a = {"bob", "alex", "john"};
    for (int i = 0; i < 3; i++) {
        printf('%d', sizeof(a[i]));
    }
}

我在这里尝试做的是初始化一个字符串数组,遍历它并打印每个单词的大小。但我得到分段错误。我的方法有什么问题?

【问题讨论】:

标签: c


【解决方案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
猜你喜欢
  • 2016-06-26
  • 2021-09-21
  • 1970-01-01
  • 2012-07-26
  • 1970-01-01
  • 1970-01-01
  • 2011-01-24
  • 1970-01-01
  • 2017-06-26
相关资源
最近更新 更多