我在这里有一个数组,一个人的名字是通过键盘输入的,我必须将其取反,但是由于某种原因,每当我运行代码时,它就都为null

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

void reverse_name(char *pointer, int length);

int main()
{//open main

    char name[20];
    int size;
    printf("enter name\n");
    scanf("%s", name);
    size  = strlen(name);
    reverse_name(name, size);

    return 0;
}//close main

void reverse_name(char *pointer, int length)
{//reverse open
    int i;
    for(i =0;i<length;i++)
    {//open for
        pointer[i] = pointer[length - i];
    }//close for

    printf("new name is %s", *pointer);
}//reverse close

最佳答案

它应该是

pointer[i] = pointer[length - i - 1];


您实际上正在考虑超出其长度的数组单元。

关于c - 反转数组中的字符的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20841348/

10-11 23:06
查看更多