原型:extern int strlen(char *s);
功能:計算字串s的(unsigned int型)長度
說明:返回s的長度,不包括結束符null。
int strlen(const char *str)
原型:extern char *strcat(char *dest,char *src);int strlenn(const char *str)
功能:把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...