Closed. This question is off-topic. It is not currently accepting answers. Learn more
想改进这个问题吗?Update the question所以堆栈溢出的值小于aa>。
6年前关闭。
请你一步一步地向我解释一下这个C程序使用指针反转字符串的算法好吗?
#include <stdio.h>

int main()

{
    char str[50];
    char rev[50];
    char *sptr = str;
    char *rptr = rev;

    int i=-1;
    printf("Enter any string : ");
    scanf("%s",str);

    while(*sptr)
    {
        sptr++;
        i++;
    }

    while(i>=0)
    {
        sptr--;
        *rptr = *sptr;
        rptr++;
        --i;
    }


    *rptr='\0';
    printf("Reverse of string is : %s",rev);
    return 0;
}

最佳答案

魔法就在这个循环中:

while(i>=0) // while there are more letters... (i was previously set to the number of letters)
{
    sptr--;  // decrement source pointer (points to end of source string
    *rptr = *sptr; // copy char
    rptr++; // increment target pointer
    --i; // decrement number of chars remaining
}

实际上相当直截了当。

关于c - 这个C程序如何使用指针反转字符串? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19727650/

10-11 16:38