Может кто-нибудь объяснить код ниже? Как он меняет порядок символов в строке?Синтаксис C, пожалуйста, объясните этот код snip?
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;
}
Попробуйте выполнить его с помощью отладчика. –
Спасибо, Карл, хорошая идея .. Я делаю это. –
Нет, это довольно хороший код по стандартам C. Арифметика указателя - это то, что вам нужно было сделать. У него даже есть комментарии, чтобы объяснить, что происходит (что редко встречается в мире C). – buffjape