c语言函数传字符数组 c函数传递数组

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

#include stdio.h

厦门网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、自适应网站建设等网站项目制作,到程序开发,运营维护。创新互联2013年开创至今到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联。

#include cstring

int k=1000;

char* find(char *a)

{

//char b[k];

/*最好将b的定义形式写成下面static的形式。常规定义会出现警告,而且可能会输出异常 

因为数组b会随着函数结束而被释放内存,强行返回则会出现内存溢出 

定义成静态形式,则数据不会因为函数结束而被释放内存,但是静态数组大小受到限制,

看你自己的实际情况选择*/ 

static char b[50];

int j=0;

for(int i=0;istrlen(a);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);

}

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

有啥问题追问吧。

c语言字符型数组传入函数?

在主函数里面,sizeof是数组占的空间

在作为参数时,会被转为指针

所以在函数里面打印的是sizeof(char*)

对于任意指针,sizeof的值都是当前编译器位数。你的是32位编译器,输出就是4

ps:4字节=32位

c语言二维字符数组传入函数的问题

既然只传一行,干嘛要用(*)[]型形参?用char *p或char p[]不就足够了?另外,50x1000000的数组大了点,声明全局数组吧,局部数组不支持。


文章名称:c语言函数传字符数组 c函数传递数组
分享路径:http://scyanting.com/article/dopeojs.html