牛客 題庫 1

2021-08-07 19:45:38 字數 1598 閱讀 3467

1.字串複製函式strcpy (字元陣列1, 字元陣列2),字元陣列1的長度應大於等於字元陣列2的長度.  說法是否正確?

解答:說法正確

strcpy函式:顧名思義字串複製函式:

原型宣告:char *strcpy(char* dest, const char *src);

標頭檔案:#include <

string.h> 和 #include

功能:把從src位址開始且含有null結束符的字串複製到以dest開始的

位址空間,返回dest(位址中儲存的為複製後的新值)。

說明:src和dest所指記憶體區域不可以重疊且dest必須有足夠的空間來容納src的字串

返回指向dest的

指標。該函式的引數是字元指標,也就是可以是字串變數和字元陣列,因為它們的

變數名代表首字元位址

。字串預設有乙個null

結束符,

字元陣列沒有(也就是說,字串的末尾都有乙個\0,而字元陣列沒有)。所以此處需要注意:因為src要求有null

結束符,所以字元數

組的長度必須大於等於src包含null結束符的總長度。

例如,char* src="abcd"; char dest[5]; 這裡

dest的長度就至少為5。

strncpy函式:多個n代表可以指定字元個數進行賦值。原型:char * strncpy(char *dest, char *src, size_tn); 

功能:將字串src

中最多n個字元複製到字元陣列dest中(它並不像strcpy一樣遇到null才停止複製,而是等湊夠n個字元

才開始複製),返回指向dest的指標。

要求:如果n > dest串長度,dest棧空間溢位產生崩潰異常。該函式注意的地方和strcpy類似。

(c/c++)複製字串src中的內容(字元,數字、漢字....)到字串dest中,複製多少由size_tn的值決定。如果src的前n個字元

不含null

字元,則結果不會以null字元結束。如果n

加'\0',也就是結果dest

不包括'\0',

需要再手動新增乙個'\0'。

如果src的長度小於n個位元組,則以null填充dest直到複製完n個字

節。src和dest所指記憶體區域不可以

重疊且dest必須有足夠的空間來容納src的字元長度+'\0'。舉例:

#include #include using namespace std;

int main()

如果在複製完的str3的後面不新增'\0',會出現亂碼的情況。

2. void swap(int &a,int &b)

int main()

輸出結果為:2 1 2 1

2)傳遞給被調函式的是x,y的數值,而不是引用:

#include #include using namespace std;

void swap(int a, int b)

int main()

輸出結果為:2 1 1 2

牛客 題庫 遞迴

1.下列 的輸出是?注 print已經宣告過 main print char s 解答 輸出的是 suiene 注意,字母前面有乙個空格 這裡考察了兩個知識點 遞迴和print s 指標先移動,然後呼叫函式。找到一篇講解遞迴的部落格 遞迴演算法 程式呼叫自身的程式設計技巧稱為遞迴 recursion...

牛客 題庫 define typedef 區別

1.test.c檔案中包括如下語句 define int ptr int typedef int int ptr int ptr a,b int ptr c,d 檔案中定義的四個變數,哪個變數不是指標型別?解答 b typedef 給已有型別宣告乙個別名,故c和d都是int ptr型別也即都是int...

牛客網 java題庫(21 30)

literator可用來遍歷set和list集合,但是listlterator只能用來遍歷list。iterator對集合只能是前向遍歷,listiterator既可以前向也可以後向。listiterator實現了iterator介面,幷包含其他的功能,比如 增加元素,替換元素,獲取前乙個和後乙個元...