C 语言面试题小结

1  用两个栈实现一个队列的功能

2 关于strcpy

a   strcpy(s1,s2) strcpy是把字符串s2中的内容copy到s1,包括字符串的结束标志也一起copy

b  找错

void test1()
{
 char string[10];
 char *str1="0123456789";
 strcpy(string,str1);
}

会引起数组下标越界

void test2()
{
 char string[10],str1[10];
 int i;
 for(i=0;i<10;i++)
 {
  str1[i]='a';
 }
 strcpy(string,str1);
}

void test3(char*str1)
{
 char string[10];
 if(strlen(str1)<=10)
 {
  strcpy(string,str1);
 }
}

strlen(str1)<=10应改为strlen(str1)<10

strcpy的完整实现

char *strcpy(char *strDest,const char *strSrc)
{
 
assert((strDest!=NULL)&&(strSrc!=NULL));
 
char *address=strDest;
 
while((*strDest++=*strSrc++)!=\0);
  
return address;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值