反向字符a到z

时间:2014-01-10 09:01:36

标签: 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;
}

5 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:5)

如果;之后有for,则表示for在执行后没有任何代码,而且只是for本身。< / p>

它的作用是,它从变量a的开头开始,直到达到NULL0,这被解释为FALSE,并退出for循环。现在iNULL末尾a的索引,i--会使其成为变量a的最后一个字符的索引,然后它开始逆转变量。

答案 2 :(得分:3)

C字符串是char的数组。 C字符串被称为“空终止”:字符串的结尾由空字符'\0'的存在指示。循环for(i=0;a[i];i++);递增i直到找到空终止字符。 (当a [i]被转换为循环终止条件的布尔值时,空字符被提升为false,因为它的值为0)。之后,i--;将索引i向下移动到C字符串中的最后一个有效字符。

答案 3 :(得分:2)

中的for
for(i=0;a[i];i++);

有效地计算字符串的长度。 i--然后取一个长度, 然后你有一个围绕字符交换的循环

答案 4 :(得分:1)

for(i=0;a[i];i++);

检查a[]中的最后一个字符。