c - 反字符 a 到 z

标签 c for-loop

在下面的代码中有一个 ;for之后循环,但我们通常不使用 ;for之后循环控制表达式,因为这会使循环结束,实际上没有语句。

为什么在这里使用它,究竟是什么i--在这段代码中做什么?它只发生一次。

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
    char a[]="abcdefghijklmnopqrstuvwxyz";
    char temp;
    int i,j;
    for(i=0;a[i];i++);
    i--;
    puts ("the initial text is:");
    puts (a);
    for(j=0;j<i/2;j++){
        temp=a[j];
        a[j]=a[i-j];
        a[i-j]=temp;
    }
    puts ("reversed text is:");
    puts (a);
    getch();
    return 0;
}

最佳答案

使用 for 循环,计算 char 数组中的元素数量。检查 for 中的条件。它说 a[i]。这意味着,直到时间 a[i] 为真,[或不是 null],for 循环将运行并在它完成后,元素的总数将存储在 i 中。

i-- 一样,for 循环只会在条件检查为 false 时中断,即当 a [i] 包含 NULL。这次 a[i] 的值包含终止 NULL 字符。这里i作为数组的索引,所以在i--之后,a[i]会指向数组中的最后一个有效元素数组。

关于c - 反字符 a 到 z,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21039939/

相关文章:

java - 为什么我无法打破外层 for 循环?

c++ - 需要帮助将 .txt 字符分配到二维数组中。 C++

python比较2个不同长度列表中的项目-顺序很重要

memory - NOPs指令存储在内存中使用\x符号

c - 寻找复制到缓冲区的字符串

c - 如何访问已知内存地址的内容?

c - C语言如何用一行替换多行空行

jquery - 追加内的 for 循环不起作用

c - execve不会运行可执行的汇编文件

objective-c - 哪个代码块是 'better' ?