c - 如何使用指针数组反转字符串?

标签 c string pointers malloc

我想使用指针数组、malloc 而不是使用字符数组来反转字符串(用户在运行时给出)。有人可以帮我给我一个代码吗?我对 C 很陌生。提前致谢。

最佳答案

我不确定你在问什么,但以下程序符合你的条件, 1.有一个指针数组 2.有malloc 3.没有字符数组

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

#define STR_MAX_SIZE 256

int main()
{
    char *str;
    char *pos[2];
    char c;

    if((str = malloc(STR_MAX_SIZE)) ==NULL) {
        return -1;
    }
    scanf("%s",str);

    pos[0] = str;
    pos[1] = str;
    while(*pos[1]) {
        pos[1]++;
    }
    pos[1] -= 1;

    while(pos[0] < pos[1]) {
        c = *pos[0];
        *pos[0] = *pos[1];
        *pos[1] = c;
        pos[0]++;
        pos[1]--;
    }
    printf("reversed : %s\n",str);
    return 0;
}

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

相关文章:

c - 需要一些关于 C 中树的解释

c - memcopy 上的段错误,谁能解释一下这段代码中的 C 语法?

c++ - 将字符串转换为全部大写 - C++

c - 通过指向指针数组的指针递增

C 将数组的指针更改为更大的数组

c - 如何使用 apr_file_open() 创建文件

c - 将结构传递给函数

c - 如何在C程序中将字符串中的第一个单词和最后一个单词大写?

c - 为什么要为该数组中的第一个元素打印垃圾?

c - 试图了解释放分配的内存时的行为