C语言程序设计(39)

来源:百度知道 编辑:UC知道 时间:2024/05/28 03:40:16
若有定义:cahr *x="abcdeeghi";,以下选项中正确运用了strcpy函数的是
哪个?
char y[10];ctrcpy(y,x[4]);
char y[10];ctrcpy(++y,&x[1]);
char y[10],*s;ctrcpy(s=y+5,x);
char y[10],*s;ctrcpy(s=y+1,x+1);

why?

正确的是最后一个char y[10],*s;ctrcpy(s=y+1,x+1);

char y[10];ctrcpy(y,x[4])中x[4]是一个char型数据,strcpy(s1,s2)分别是两个地址,所以不行

char y[10];ctrcpy(++y,&x[1])中,y是数组名,指针常量,所以不能有y=y+1这样的赋值操作

char y[10],*s;ctrcpy(s=y+5,x)中,x是一字符串,占用十个空间,s=y+5后边只有四个空间,复制后会溢出。编译没有错误,不过信息已经丢失.

只有char y[10],*s;ctrcpy(s=y+1,x+1)是正确的,具体可以对照我前边的分析

strcpy(s1,s2)它是一个字符串拷贝函数

此函数把字符串s2所指的内容复制到s1所指的存储空间中去
我的答案是char y[10],*s;strcpy(s=y+5,x);
确实你的字符类型char
strcpy 写错了哦
str——字符的英文
cpy ——copy(复制)的缩写
*s是指向数组y的指针,这题主要是看X代表化的地址就是了,x[1],这里改为0的话也是可以的

char y[10],*s;strcpy(s=y+5,x);
只有这个函数可以实现,你不要把复制的函数写错了,*s是指向数组y的指针,这题主要是看X代表化的地址就是了,x[1],这里改为0的话也是可以的