#include
#include
int k=1000;
char* find(char *a)
{
//char b[k];
/*最好将b的定义形式写成下面static的形式。常规定义会出现警告,而且可能会输出异常
因为数组b会随着函数结束而被释放内存,强行返回则会出现内存溢出
定义成静态形式,则数据不会因为函数结束而被释放内存,但是静态数组大小受到限制,
看你自己的实际情况选择*/
static char b[50];
int j=0;
for(int i=0;i{
if(a[i]>='0'&&a[i]<='9')
{
b[j]=a[i];
j++;
}
}
return b;
}
int main()
{
char a[k];
printf("请输入字符串:\n");
scanf("%s",&a);
char *c=find(a);
printf("字符串中数字有:\n");
printf("%s\n",c);
}
用返回值的形式来做数组问题确实不好,最好是用全局变量的形式做比较好。
有啥问题追问吧。