首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在C中从char函数返回字符串

如何在C中从char函数返回字符串
EN

Stack Overflow用户
提问于 2015-03-10 06:54:25
回答 1查看 377关注 0票数 0

我正在写这个冒泡排序的练习,我必须创建两个源文件。第一个包含主要代码,第二个包含我的冒泡排序算法。主代码包括冒泡排序。

Main:

#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;}

问题是,当我运行它时,我得到一个“当从类型'char *‘赋值给类型'char100’时,类型不兼容”错误

我对c非常陌生,我有点迷路了,我现在已经浏览了很长时间来寻找答案。我知道该函数将返回一个char而不是char数组(从java经验中称为字符串),但我就是找不到一种方法来做到这一点。

一个解决方案将是伟大的,或者只是一个小的帮助将是感激的。

编辑:我忘了提到我的程序到底做了什么。它应该从用户那里获得一个字符串,应用冒泡排序算法,该算法将按字母顺序对字符串中的每个字符进行排序,即"bagf“将输出为"abfg”。我还添加了一些评论

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-10 06:59:18

首先,请以一种可读的方式编写代码,您的问题是没有交换任何值

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;
 }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28953250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档