字串試題

2021-06-20 22:30:10 字數 3380 閱讀 3344

原型:extern int strlen(char *s);

功能:計算字串s的(unsigned int型)長度

說明:返回s的長度,不包括結束符null。

int strlen(const char *str)

int strlenn(const char *str)

原型:extern char *strcat(char *dest,char *src);

功能:把src所指字串新增到dest結尾處(覆蓋dest結尾處的'\0')並新增'\0'。

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

返回指向dest的指標。

char *strcat(char *dest,char *src)

原型:extern int strcmp( const char *str1, const char *str2 );

功能:比較字串str1 and str2, 返回值如下:

< 0        str1 is less than str2 

= to 0     str1 is equal to str2 

> than 0   str1 is greater than str2 

以ascii碼逐個比較假如乙個字元大於第二個字元 不論後面有多少字元 第一字元永遠大於第二字元的

int strcmp(const char *str1, const char *str2)

if (__res == 0)return __res;

__res = __res>0?1:-1;

return __res;

}



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

功能:複製字串src 中的字元到字串dest,包括空值結束符。返回值為指標to。

char* pde = null;

char* dest 含有預設的指標保護 同變數保護相同理解 當出函式棧時 形參將還原指標的位置

但變數這時未起到保護 所以變數發生改變而指標位置未發生改變

char* strcpy(char* dest,const char* src)

原型:extern char *strncpy(char* dest,const char* src,size_t count);

功能:複製字串src 中的字元到字串dest,複製的長度由count設定。返回值為指標to。

char *strncpy(char* dest,const char* src,size_t count)

原型:extern char *strset(char *s, char c);

功能:把字串s中的所有字元都設定成字元c。

說明:返回指向s的指標。

sets all of characters in string (except the terminating '/0'character) equal to c.

把字串的所有字元都設定為字元c。

char *strset(char *s, char c)

原型:extern void *memcpy(void *dest, void *src, unsigned int count);

功能:由psrc所指記憶體區域複製ncount個位元組到pdest所指記憶體區域。

說明:psrc和pdest所指記憶體區域不能重疊,函式返回指向pdest的指標。

psrc和pdest若重疊則使用逆拷貝功能,函式返回指向pdest的指標。

void* memcpy(void* pdest, const void* psrc, unsigned int ncount)   

return pdest;

}

strcpy和memcpy的區別

(1).strcpy只能用於字串拷貝;而memcpy是記憶體拷貝,可以拷貝任何型別的資料。

(2).當二者都進行字串拷貝時,strcpy遇到字串結尾'\0'即完成;而memcpy只是記憶體的原樣拷貝,不管遇到什麼。

原型:extern void *memset(void *buffer, int c, int count);

功能:把buffer所指記憶體區域的前count個位元組設定成字元c。

說明:返回指向buffer的指標。

void * memset(void* buffer,char c,size_t count)       

原型:extern void *memchr(void *buf, char ch, unsigned count);

功能:從buf所指記憶體區域的前count個位元組查詢字元ch。

說明:當第一次遇到字元ch時停止查詢。如果成功,返回指向字元ch的指標;否則返回null。

void *memchr(const void *buf, char ch, size_t count)

}

return null;

}

原型:extern void *memmove(void *dest, const void *src, unsigned int count);

功能:由src所指記憶體區域複製count個位元組到dest所指記憶體區域。

說明:src和dest所指記憶體區域可以重疊,但複製後src內容會被更改。函式返回指向dest的指標。

(前拷貝,順序拷貝;後拷貝是防止值的先拷 [主要功能:考慮src在前時的問題])

void * memmove(void * dest,const void *src,size_t count)   

//保證dest 所付的值 src不被用到即可 由於反拷貝並

不影響

else // (char*)dest >= (char*)src+count 的現象 也可省略 這個

return dest;

}

一位元組對齊

#pragma pack(push,1)

#pragma pack(pop)

只包含一次標頭檔案

#pragma once



字串筆試題

1 輸入乙個整數的字串,把該字串轉換成整數並輸出。例如輸入字串 345 則輸出整數345 思路 依次掃瞄字串,每掃到乙個字元,把之前的得到的數字乘以10再加上當前字元表示的數字。注意 還可能包括 或 表示整數的正負。需要特殊處理 考慮非法輸入 1 判斷指標是否為空 2 輸入的字串可能不是數字的字元,...

字串面試題 字串逆序

字串逆序可以說是最經常考的題目。這是一道入門級的題目。給定乙個字串s,將s中的字元順序顛倒過來,比如s abcd 逆序後變成s dcba 基本上沒有這麼考的,放在這裡主要是為了和後面的原地逆序做個對比。很簡單,直接分配乙個與原字串等長的字元陣列,然後反向拷貝一下即可。char reverse cha...

字串試題整理OK

int match char str,char ptn while str 0 return 0 if ptn if ptn str return 0 例如 god dog void reverse char str void reversefixlen char str,int n 例如 my n...