@im_noob

С: Объясните, что не так?

Я сделал задание, оно правильное, но препод мне говорит: что нужно передать в puts функцию сортировки, которая возвращает отсортированную строку. Я не понимаю, чего он хочет? Прошу объяснить дураку (мне)
Вот мой код
#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#define MAXS 128

char* sort_string(char* word);
 
int main() {

    char word[MAXS], word1[MAXS];
    
    printf("\n Enter a string1: ");     
    gets_s(word,MAXS);
    printf("\n Enter a string2: "); 
    gets_s(word1, MAXS);
    strcat(word, word1); 
    printf("\nThe connected string is \n");
    puts(word);
  char *R= sort_string(word); 
    printf("\n sorted :\n"); 
    puts(R);
    _getch();
    return 0;
}
char* sort_string(char* word)
{
    int c, d = 0, length;
    char* pointer, * result, ch;

    length = strlen(word);

    result = (char*)malloc(length + 1);

    pointer = word;

    for (ch = '-'; ch <= 'z'; ch++)
    {
        for (c = 0; c < length; c++)
        {
            if (*pointer == ch)
            {
                *(result + d) = *pointer;
                d++;
            }
            pointer++;
        }
        pointer = word;
    }
    *(result + d) = '\0';

    strcpy(word, result);
    free(result);
    return  pointer;
}
  • Вопрос задан
  • 144 просмотра
Пригласить эксперта
Ответы на вопрос 2
zagayevskiy
@zagayevskiy
Android developer at Yandex
Чёт непонятно, puts никаких функций не принимает. Может он хочет in-place сортировку, без создания нового массива?
Ответ написан
@res2001
Developer, ex-admin
Возможно он хочет увидеть что-то типа этого:
puts(sort_string(word));
Но это блаж какая-то.
Кроме того в sort_string возможна ошибка выделения памяти (которую вы не обрабатываете) и передавать так, без обработки ошибок ... плохо.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы