【发布时间】:2017-11-28 19:48:49
【问题描述】:
我有 2 个 for 循环,它们用字母表中的字母填充数组。我有一个lowercase 数组集和一个uppercase 数组集。问题是当我用字母初始化数组时,返回的长度不同。
char uppercase[26];
char lowercase[26];
int indexUpper = 0;
int indexLower = 0;
// Get uppercase array:
for(int a = 65; a <= 90; a++){
uppercase[indexUpper] = a;
indexUpper++;
}
// Get lowercase array:
for(int b = 97; b <= 122; b++){
lowercase[indexLower] = b;
indexLower++;
}
printf("UPPERCASE = %lu\n", strlen(uppercase));
printf("LOWERCASE = %lu\n", strlen(lowercase));
$=> UPPERCASE = 26
$=> LOWERCASE = 27
如果这是一个没有脑子的问题,我深表歉意。我真的在努力学习和理解 C 语言及其规则。感谢所有做出贡献的人。
【问题讨论】:
-
代码无法编译 -> 缺少
} -
请将整个代码贴出来,方便回答的人
-
strlen需要一个以 nul 结尾的数组。这里似乎没有发生。 -
strlen需要一个指向字符串的指针作为参数。您正在传递一些不指向字符串的东西。行为未定义。 -
@ilkkachu 对不起,我的错我似乎算错了。对不起