如何从函数中返回字符串

来源:百度知道 编辑:UC知道 时间:2024/06/08 08:12:42
因为在C语言中函数不能返回数组,但字符串是存储在字符数组中的,所以能有什么办法从函数中返回字符串呢,希望高手能给解答并最好给出一个具体实例,感谢!

  C语言中实现函数返回字符串,首先要确定函数返回的字符串地址的来源,一般分为四种方式:

  1. 函数形参带进来的地址

  2. 静态局部变量地址

  3. 局部变量地址,必须在函数中用malloc()函数进行地址分配

  4. 采用全局变量地址

  参考代码:

  void  func1( char *s )  //通过形参返回字符串
  {
  strcpy( s, "hello");
  }
  char * func1_1( char *s ) //另一种写法
  {
  strcpy( s, "hello");
  return s ; //返回形参地址,方便程序调用
  }
  char * func2( void )
  {
  static char s[100]; //不能是非静态变量,否则,子函数结束,局部变量被释放,调用者得到一个无效的地址值。
  strcpy( s, "hello");
  return s ; //返回静态局部变量地址,由调用者采用相应的指针变量接收返回值,得到字符串数据。
  }
  char * func3( void )
  {
  char *s ;
  s=(char *)malloc( 100 );
  strcpy( s, "hello");