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;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章