【发布时间】:2018-12-15 13:40:21
【问题描述】:
我在 C 中有一个函数,它应该找出给定 char 数组中有多少个“X”。 我收到参数中的数组,但我没有收到它的长度
所以在 C 中应该是
countX(char ss[]){
int i=0; cont=0;
while(ss[i]!='/0'){
if(ss[i]=='X') cont++;
i++;
}
return cont;
}
}
我必须在汇编中实现这一点,但由于我没有数组的长度,我不知道我需要在 cmp 指令中比较什么值才能到达 char 数组的末尾?
【问题讨论】:
-
'/0'看起来像是一个错字。应该是'\0'用于 NUL 终止字符,它也表示结束。假设您正在处理 C 字符串 -
C 中的字符数组不会自动以 '\0' 结尾,所以我不确定这是一个很好的比较。
-
感谢您的 cmets,我确实注意到它不正确,应该是 '\0'。尽管我同意你的观点,但该代码是在课堂练习中给出的,所以无论情况如何,我都必须处理它。
-
如果您发布的代码是由您的讲师提供给您的,则需要修正错字。该代码表明该数组以 NUL (0) 终止。您必须扫描值 0(字符串的结尾)和字母“X”。
-
@DavidWohlferd 如果它们代表字符串,这是一个完全有效的假设。
标签: arrays pointers assembly char arguments