【发布时间】:2016-03-11 00:18:18
【问题描述】:
我是 c 编程语言的新手。我正在尝试反转 char 数组中的元素。实际上,我几乎逆转了,但有些事情我做不到。 这是代码:
void q2_reverseTheArray(char word[100]){
int lentgh=sizeof(word);
int j;
for(j=length+1; j>=0; j--){
printf("%c", word[j]);
}
代码反转了数组,但它添加了另一个字母。
【问题讨论】:
-
您确定这是您使用的代码吗?这不应该编译,因为您在
length的声明中有错字;那么它应该会崩溃,因为您通过访问word[length + 1]来启动循环,这是 2 个超出范围的索引。 -
您的 for 循环条件错误。数组的索引从 0 到 length-1。请尝试以下操作:
for (j=length-1; j>0; j--)这将从最后一个字符开始并重复直到第一个字符。更好的是,习惯使用您的调试器。 -
是的,我确定。我给了参数“书”。输出是“aakoob”。
-
致所有读者:已经说过“我是 c 编程语言的新手”,让这个家伙放松一下,不要对这个问题投反对票或近距离投票。