Как перевернуть строку, используя массив указателей? - PullRequest
0 голосов
/ 01 октября 2019

Я хочу обратить строку (пользователь дает во время выполнения), используя массив указателей, malloc, а не используя массив символов. Кто-нибудь может мне помочь, дав мне код? Я очень новичок в C. Спасибо заранее.

1 Ответ

1 голос
/ 01 октября 2019

Я не уверен, что вы спрашиваете, но следующая программа отвечает вашим условиям: 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...