如何获取字符串数组的元素个数?(禁用strlen、sizeof函数)
解决字符串数组元素计数问题(禁用strlen/sizeof)
你当前的问题是误用了strlen(array[0])——这个函数是计算第一个字符串的字符长度,和数组里的元素个数完全无关。要在不能用strlen和sizeof的前提下统计有效元素数量,可以利用C语言中二维字符数组初始化的特性:未显式赋值的数组行会被自动填充为全'\0'(空字符),我们可以通过遍历检测每行的首字符来计数。
具体实现代码
#include <stdio.h> int main() { char array[10][100] = {"apple", "banana", "strawberry", "grapefruit"}; int count = 0; // 遍历数组,直到遇到首字符为'\0'的行或达到数组最大容量 while (count < 10 && array[count][0] != '\0') { count++; } printf("%d", count); return 0; }
逻辑说明
- 初始化计数器
count为0,从数组第一行开始检查 - 每次循环判断当前行的首字符是否为
'\0':如果不是,说明这是一个有效字符串,计数器加1 - 同时加入
count < 10的条件,避免超出数组的最大容量(你定义的数组最多有10行) - 当遇到首字符为
'\0'的行时,停止遍历,此时的count就是数组中有效字符串的个数
内容的提问来源于stack exchange,提问作者Valen7ino
相关产品推荐
相关产品推荐

