我想从一个函数中返回一个字符数组,然后在main
函数中打印它。我该如何将该字符数组回传到main
函数?
#include<stdio.h>
#include<string.h>
int main()
{
int i=0,j=2;
char s[]="String";
char *test;
test=substring(i,j,*s);
printf("%s",test);
return 0;
}
char *substring(int i,int j,char *ch)
{
int m,n,k=0;
char *ch1;
ch1=(char*)malloc((j-i+1)*1);
n=j-i+1;
while(k<n)
{
ch1[k]=ch[i];
i++;k++;
}
return (char *)ch1;
}
请告诉我我做错了什么?
test=substring(i,j,*s);
这一行中,你错误地对s
进行了解引用操作。 - Daniel Fischer(char*)
强制转换是不必要的,并且乘以 1 是没有意义的 -(j-i+1)*1
应简化为j-i+1
。 - Bernhard Barker