c语言传递字符串数组
⑴ c语言如何传递字符串
c语言函数中传递字符串,可以分为两种情况,一种是将字符串作为参数,一种是将字符串作为返回值 ,当使用字符串作为返回值时,切记不要传递局部字符数组。下面是一个示例代码:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
voidf(char*str){//字符串作参数
printf(str);
}
char*r(){//字符串作返回值
//使用动态分配内存,不要使用局部变量比如
//charbuf[80];因为局部变量在函数结束时,栈区变量已被回收
char*str=(char*)malloc(256*sizeof(char));
if(str==0){printf("can'tallocmem ");return0;}
elsememset(str,0x00,sizeof(char)*256);
returnstr;//
}
intmain()
{
char*pstr=r();
if(pstr!=0)strcpy(pstr,"helloworld ");
f(pstr);
free(pstr);
return0;
}
⑵ C语言中将字符串赋值给字符数组
char c[10];
//c是数组名,代表数组的首地址。要是想让数组中存放一个字符串,只需知道首地址即可。所以可以用scanf("%s",c);因为c本身就是地址,所以不用加&
char *s; //s是指针变量,指针可以存放一个地址值
s="ABCDE"; //c语言中字符串常量是以数组的形式在内存中存放,这条赋值语句,相当于是把ABCDE的首地址赋给了指针变量s
char s; //s是一个字符变量,只能给其赋一个合法的字符
⑶ 求助,c语言中的函数如何把字符串数组(不是字符串)传入一个函数并作处理
char *strings[16];
这是一个指针数组,直接定义一个数组就可以了,对字符串的操作,指针和数组是等价的,
如果像你这样用就这样改:
char **str;
*str=strings[i];
或者
char *str;
str=&strings[i];
⑷ c语言定义字符串数组
C语言字符串数组中的每一个元素均为指针,即有诸形如“ptr_array[i]”的指针。由于数组元素均为指针,因此ptr_array[i]是指第i+1个元素的指针。
例:如二维指针数组的定义为:char *ptr_array[3]={{"asdx","qwer","fdsfaf"},{"44444","555","6666"},{"a78x","q3er","f2f"}};
(4)c语言传递字符串数组扩展阅读
字符串数组数组元素表示方法:
数组元素的一般形式为:数组名[下标] 其中的下标只能为整型常量或整型表达式。如为小数时,C编译将自动取整。
例如,a[5],a[i+j],a[i++]都是合法的数组元素。数组元素通常也称为下标变量。必须先定义数组, 才能使用下标变量。在C语言中只能逐个地使用下标变量, 而不能一次引用整个数组。
⑸ C语言 字符串数组
导致这个问题的原因是缓存满了,要使用语句
fflush(stdin) 将缓存清空可正常执行
此语句不建议经常使用,但却是没有办法的办法了,这是C语言的不足,在其他的高级语言中向这样的错误就不存在,在学C的时候先应付着
赶快去试试吧…………
#include<stdio.h>
main()
{
int i,n;
char p[100];
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("now i is :%d\n",i);
fflush(stdin);//清空缓存
scanf("%c",&p[i]);
}
for(i=0;i<n;i++)
{
printf("the location of the point is :%d\n",i);
printf("%c",p[i]);
}
}
⑹ C语言字符串数组指针的传递
简单写了一个,供参考
#include
<stdio.h>
#include
<string.h>
struct
data
{
int
n;
char
name[10];
};
//传入一个字符串指针name,给结构体相应变量赋值
void
cp_str(
char
*name
,
int
n
)
{
struct
data
st;
strcpy(
st.name
,
name
);
st.n=n;
}
//输入数据,完成字符串的录入
void
input_str()
{
int
i=0;
for(i=0;i<10;i++)
{
scanf("%s"
,name
);
cp_str(
name
,
i
);
}
}
//主程序
int
main()
{
input_str();
return
0;
}
⑺ C语言里如何把输入字符串赋值给字符数组
说个例子吧~
char a[10];
怎么给这个数组赋值呢?
1、定义的时候直接用字符串赋值
char a[10]="hello";
注意:不能先定义再给它赋值,如char a[10]; a[10]="hello";这样是错误的!
2、对数组中字符逐个赋值
char a[10]={'h','e','l','l','o'};
3、利用strcpy
char a[10]; strcpy(a, "hello");
⑻ C语言传字符串数组
题目不够详细啊。给你解释下什么叫字符串数组吧
字符串数组就是一个数组,他的每一个元素都是一个字符串。
在c语言中字符串是以\0结尾的一串字符,如“abcd1234\0”
字符串数组str[2]={"abc\0","123\0"}
\0是结束符。字符串数组里的字符长度都为3
打印的时候只显示abc,\0不显示
⑼ 在C语言中怎么把字符串存入数组
单独说存入字符串:你可以定义一个字符数组和指针
让指针 指向数组:
char *p,a[10];
p=a[10];
scanf("%f",p);