【问题标题】:need clarification in returning a string from a function [closed]从函数返回字符串时需要澄清[关闭]
【发布时间】:2014-01-16 09:24:40
【问题描述】:

实际上我必须将 2 个名称复制到 2 个目标中,其中一个将显示在 stringcopy 函数中。其他名称必须返回到主函数并打印它。这个程序不会在主函数中显示复制的名称。

#include<stdio.h>
#include<string.h>

int i;

char  stringcopy(char a[],char b[]);
int main()
{

char a[20],b[20],r[20],f[20];
printf("enter the first array:");
fgets(a,20,stdin);
printf("enter the second array:");
fgets(b,20,stdin);
f[20]=stringcopy(a,b);
printf("the array B:%s",f);
return 0;
}
char  stringcopy(char c[20], char d[20] )
{
char e[20],f[20];
strcpy(e,d);


printf("the second array is:%s",e);

strcpy(f,c);

return f;
}

【问题讨论】:

  • 要使用编程语言,您需要先学习。所以,继续学习一些关于 C 语言的基础教程。并格式化您的代码。
  • 这个问题似乎离题了,因为它缺乏所用语言的所有知识。

标签: arrays c string function


【解决方案1】:
  1. main 中声明char e[20],f[20]

  2. ef 作为附加参数传递给stringcopy

  3. 不要在stringcopy 的末尾返回任何内容。

【讨论】:

  • 另外,cd 应该在参数列表中声明为const,因为函数不会修改数据。
  • 这里有很多“alsos”,只是想给他最低限度的工作...
  • 是否可以将字符串从函数stringcopy返回到main。
  • 是的:char* f = (char*)malloc(20); ... return f。但是你必须在调用函数(main)中释放f指向的内存:char* f=stringcopy(a,b); ... free(f);
  • 是否可以不使用指针返回 f
猜你喜欢
  • 1970-01-01
  • 2023-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-30
  • 1970-01-01
  • 2018-11-21
相关资源
最近更新 更多