C语法,请解释一下这段代码片段?

时间:2014-10-27 17:03:39

标签: c string

有人可以解释下面的代码吗?它如何颠倒字符串中字符的顺序?


void reverse_string(char *str)
{
/* skip null */
if (str == 0)
{
    return;
}

/* skip empty string */
if (*str == 0)
{
    return;
}

/* get range */
char *start = str;
char *end = start + strlen(str) - 1; /* -1 for \0 */
char temp;

/* reverse */
while (end > start)
{
    /* swap */
    temp = *start;
    *start = *end;
    *end = temp;

    /* move */
    ++start;
    --end;
}

1 个答案:

答案 0 :(得分:1)

它交换第一个字符和最后一个字符。然后它用倒数第二个字符交换第二个字符。等等,直到完成。