摩尔曼斯克 发表于 2020-6-22 23:12:36

求助!多个字符串问题

我知道的是,如果要储存多个字符串有两种方法,一种是二维数组比如a,一种是一维指针数组*a.
但是要怎么才能让函数返回这两个玩意呢?我自己试了很久都不行,球球各位大佬帮忙,感激不尽!!
#include <stdio.h>

char *abc(char *s)
{
        char *a;
        int i;
        for(i=0;i<5;i++)
        {
                a=s;
        }
        return *a;
}
int main()
{
        char s,*a;
        int i;
        s="AB123";
        *a=abc(s);
        for(i=0;i<5;i++)
        {
                        printf("%s\n",*a);
        }

        return 0 ;
}

这是我自己敲的代码,最后是没有结果的。
是函数返回的问题,还是我定义不对?
怎么改才能正常输出呢?

NukaCola 发表于 2020-6-23 00:42:06

本帖最后由 NukaCola 于 2020-6-23 00:44 编辑

#include <stdio.h>

char *point(char *Str)
{
    char *temp;
    temp=Str;
    return temp;
}

int main()
{
    char *Str, S[]="String";
    for(int i=0;i<5;i++)
    {
      Str=point(S);
      printf("%s\n",Str);
    }
    return 0;
}

以上是为了实现调用函数而强行写个函数,实际上这个代码很简单。

#include <stdio.h>
int main()
{
    char *Str, S[]="String";
    for(int i=0;i<5;i++)
    {
      Str=S;
      printf("%s\n",Str);
    }
    return 0;
}

chxchxkkk 发表于 2020-6-23 00:46:09

char *abc(char *s)
{
      char *a;
      int i;
      for(i=0;i<5;i++)
      {
                a=s;
      }
      return *a;
}

*a=abc(&s);

这个子函数里 char *a;是在栈上,函数退出就释放了,要返回正确的地址可以用malloc分配到堆上,然后返回的指针才能找到正确的地址

永恒的蓝色梦想 发表于 2020-6-23 07:48:21

malloc.
页: [1]
查看完整版本: 求助!多个字符串问题