نوشتن تابع معکوس‌کننده یک رشته در زبان C

به کد زیر توجه کنید:

#include <stdio.h>
#include <string.h>

char *strReverse(char *);

int main()
{
    char str[] = "123456789";

    printf("%s\n", str);
    printf("%s\n", strReverse(str));

    return 0;
}

char *strReverse(char *str)
{
    char temp;

    int i, j;
    for(i = 0, j = strlen(str) - 1; i < j; i++, j--)
    {
        temp = str[i];
        str[i] = str[j];
        str[j] = temp;
    }

	return str;
}

حلقه‌ی درون این تابع با Swapping باعث برعکس شدن رشته می‌شود. این حلقه حداکثر به‌اندازهٔ نصف طول رشتهٔ ورودی اجرا می‌شود. مقدار بازگشتی هم برابر اشاره‌گر به رشتهٔ هدف است. کد پیچیده‌ای نیست؛ با کمی دقت در آن متوجه همهٔ جزئیات خواهید شد. البته روش‌های دیگری هم برای برعکس کردن یک رشته وجود دارد، مانند بازگشت؛ که خودتان با کمی تمرین می‌توانید آن را بنویسید. در فایل ضمیمهٔ زیر علاوه‌بر روش بالا یک روش دیگر هم قرار داده شده است.

MD5 checksum:
eeee36bfd25503285d5bdf9427cad886 *strReverse.zip