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

在c语言中 实现一个函数,传递一个字符数组,返回字符数组中的整数值 , 并在main函数中输出 。#include stdio.h
#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语言中函数里面怎么输入字符串数组在C语言中,字符串是以字符数组方式保存的,于是字符串数组可以用二维字符数组存储 。
输入时,每次输入字符串数组的一个元素(一行),根据需要,使用scanf或gets进行输入 。
如:
char str[10][100]; //定义字符串数组,供10行,每行最多100个字节数据 。
int i;
for(i = 0; i10; i)
scanf("%s",str[i]);//输入10行字符串数据 。
c语言二维字符数组传入函数的问题既然只传一行 , 干嘛要用(*)[]型形参?用char *p或char p[]不就足够了?另外,50x1000000的数组大了点,声明全局数组吧,局部数组不支持 。
c语言字符型数组传入函数?在主函数里面,sizeof是数组占的空间
在作为参数时,会被转为指针
所以在函数里面打印的是sizeof(char*)
对于任意指针 , sizeof的值都是当前编译器位数 。你的是32位编译器 , 输出就是4
ps:4字节=32位
【c语言用函数传字符数组 c语言函数传递字符串数组】关于c语言用函数传字符数组和c语言函数传递字符串数组的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读