Я пишу это упражнение с сортировкой пузыря, и мне нужно создать 2 исходных файла. Первый содержит основной код, а второй содержит мой алгоритм сортировки пузырьков. Основной код включает в себя bubblesort.Как вернуть строку из функции char в C
Главная:
#include<stdio.h>
#include<string.h>
#include"2.c"
int main(void)
{
char text[100];
int length;
printf("Insert text: \n");
gets(text);
text=bsort(text);
printf("String : %s \n",text);
return 0;
}
BubbleSort:
char *bsort(char text[100]){
char temp[100];
int length,i,j;
length=strlen(text);
for(i=1;i<length;i++){
for(j=0;j<length-i;j++){
if(text[j]>text[j+1]){
temp[0]=text_input[j]; //
text_input[j]=text_input[j+1];//Edit,had wrong code posted
text_input[j+1] =temp[0]; //
}
}
}
return text;}
Дело в том, когда я запускаю его, я получаю "несовместимые типы при назначении типа 'символ [100]' от типа ' char * '"
Я ужасно новичок в c, и я немного потерян, я просматриваю ответ уже довольно много часов. Я понимаю, что функция вернет char вместо массива char (известный как строка из java-опыта), но я просто не могу найти способ сделать это так сильно, как я пытаюсь.
Решение будет отличным, или только небольшая помощь будет оценена по достоинству.
Большое спасибо
EDIT: Я забыл упомянуть, что на самом деле моя программа. Предполагается, что вы получите строку от пользователя, примените алгоритм bubblesort, который будет сортировать каждый cahracter в строке в алфавитном порядке, то есть «bagf» будет выводиться как «abfg». Также добавлены некоторые комментарии
Почему вы пишете код, как это? вы программист javascript? и 'temp [0], текст [j]' абсолютно ничего не делает. –
Попробуйте 'char temp; ... temp = text [j]; текст [j] = текст [j + 1]; text [j + 1] = temp; ' – chux
@iharob: Что такое Javascript, как о коде? –