[英]How to return a string from a char function in C
我正在編寫氣泡排序練習,我必須創建2個源文件。 第一個包含主要代碼,第二個包含我的冒泡排序算法。 主要代碼包括Bubblesort。
主要:
#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;
}
冒泡:
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;}
問題是,當我運行它時,我從類型'char *'分配給類型'char [100]'時得到了一個不兼容的類型”錯誤
我是c的新手,我有點迷路了,我已經在尋找答案了好幾個小時。 我知道該函數將返回一個char而不是char數組(從Java經驗中被稱為字符串),但是我只是無法找到一種盡力而為的方法。
一個解決方案將是巨大的,或者只有一點點幫助將不勝感激。
編輯:我忘了提到我的程序實際上在做什么。 應該從用戶那里得到一個字符串,應用Bubblesort算法,該算法將按字母順序對字符串中的每個字符進行排序,即“ bagf”將作為“ abfg”輸出。 還添加了一些評論
首先,請以可讀的方式編寫代碼,問題是您沒有交換任何值
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[j];
text[j] = text[j+1];
text[j + 1] = temp[0];
}
}
}
return text;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.