问两道有关c语言字符指针的问题,请将程序每一步的意思告诉我,谢谢啦
1.下面函数的功能是。sss(char*s,char*t){while((*s)&&(*t)&&(*t++==*s++));return(*s-*t);}A.求字符串的长...
1. 下面函数的功能是 。
sss(char *s ,char *t )
{ while((*s)&&(*t)&&(*t++== *s++)) ;
return(*s-*t) ; }
A. 求字符串的长度 B. 比较两个字符串的大小
C. 将字符串s 复制到字符串t 中 D. 将字符串s 接续到字符串t 中
2. 下列函数的功能是 。
int fun1(char * x)
{ char *y=x;
while(*y++) ;
return(y-x-1);}
A. 求字符串的长度 B. 比较两个字符串的大小
C. 将字符串X 复制到字符串Y D. 将字符串X 连接到字符串Y 后面 展开
sss(char *s ,char *t )
{ while((*s)&&(*t)&&(*t++== *s++)) ;
return(*s-*t) ; }
A. 求字符串的长度 B. 比较两个字符串的大小
C. 将字符串s 复制到字符串t 中 D. 将字符串s 接续到字符串t 中
2. 下列函数的功能是 。
int fun1(char * x)
{ char *y=x;
while(*y++) ;
return(y-x-1);}
A. 求字符串的长度 B. 比较两个字符串的大小
C. 将字符串X 复制到字符串Y D. 将字符串X 连接到字符串Y 后面 展开
5个回答
展开全部
第一题答案:B。理由:*s与*t都是取出此时地址存储的值,while()语句里面的意思是,当指针带睁握姿s与t都不为空并且s指向的值等于t指向的值。。。当s或者t为空或者t与s指向的蠢皮岁值不同时,while()结束,返回此时s指向的值减去t指向的值,所以为比较两个字符串的大小;
第二题答案:A。理由:x的地址赋值给y,while()语句的功能就是当y不为空时自加1,当y为空时退出while()循环,此时y为字符串尾数,减去x减去1就是字符串长度
第二题答案:A。理由:x的地址赋值给y,while()语句的功能就是当y不为空时自加1,当y为空时退出while()循环,此时y为字符串尾数,减去x减去1就是字符串长度
展开全部
char *toc(const char *a, const char *b, char *c)
{
char *pc = c;
if (a == NULL || b == NULL || c == NULL)
return c;
while(*a != '\0' && *b != '拆绝庆\宏镇0')
{
*c = (*a > *b) ? *a : *b;
a++;
b++;
c++;
}
*c = '\0'旅握;
return pc;
}
{
char *pc = c;
if (a == NULL || b == NULL || c == NULL)
return c;
while(*a != '\0' && *b != '拆绝庆\宏镇0')
{
*c = (*a > *b) ? *a : *b;
a++;
b++;
c++;
}
*c = '\0'旅握;
return pc;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1,B
解释如下:while语句(*s)&&(*t)&&(*t++==*s++)一句,当s串与t串不为NULL时,并且当拆圆他们对应位置虚御没上的字符不相等时,返回(*s-*t);
若结果大于0;串一大于串差纳二;
若结果为零,两串相等
类推;
2,A
解释如下:
程序将串x头指针赋值给y指针,然后对y运算,当y指向的字符为空时,返回
返回(y-x-1)求串长;
解释如下:while语句(*s)&&(*t)&&(*t++==*s++)一句,当s串与t串不为NULL时,并且当拆圆他们对应位置虚御没上的字符不相等时,返回(*s-*t);
若结果大于0;串一大于串差纳二;
若结果为零,两串相等
类推;
2,A
解释如下:
程序将串x头指针赋值给y指针,然后对y运算,当y指向的字符为空时,返回
返回(y-x-1)求串长;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
出错的地方:
for(i=0;s2[i]!='\0';i++)
{p[j+1]=&s2[i];
j=j+1;}
原因:在上一个循环中i已经指向了下一晌坦个填充的地方,而j+1则让这个地方跳过去了,宴没桐该地址没有被更新,于是,最终程序访问了非法的地察枯址。
改正:
p[j]=&s2[i];
for(i=0;s2[i]!='\0';i++)
{p[j+1]=&s2[i];
j=j+1;}
原因:在上一个循环中i已经指向了下一晌坦个填充的地方,而j+1则让这个地方跳过去了,宴没桐该地址没有被更新,于是,最终程序访问了非法的地察枯址。
改正:
p[j]=&s2[i];
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-08-22
展开全部
1.B
2.A
2.A
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询