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介面,幷包含其他的功能,比如 增加元素,替換元素,獲取前乙個和後乙個元...