在c语言中 实现一个函数,传递一个字符数组,返回字符数组中的整数值,并在main函数中输出。

2024-12-16 04:00:06
推荐回答(1个)
回答1:

#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);
}

用返回值的形式来做数组问题确实不好,最好是用全局变量的形式做比较好。

有啥问题追问吧。