常見字串函式實現

2021-08-22 04:49:42 字數 2876 閱讀 3495

1,strlen

①計數法 

unsigned int my_strlen1(const char *str)

return count;

}

②遞迴法

unsigned int my_strlen2(const char *str)

③首尾相減法

unsigned int my_strlen3(const char *str)

2,strcpy

dest字串要有足夠的空間,src複製包括'\0'在內的字串到dest中。

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

3,strncpy

src複製len個字串到dest中,len如果比src長,則繼續複製'\0'。len比src小時,複製len個,最後並新增'\0'。原strncpy最後沒有新增'\0'。

char *my_strncpy(char *dest,const char *src,unsigned int len)

*dest='\0';/*確保dest後有'\0',strncpy 沒有這步,但是如果dest位置全部用完也沒辦法*/

return tmp;

}

4,strcat

先遍歷dest到'\0'位置,然後進行複製

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

5,strncat

len就算比src的長度長 也不會像stcncpy繼續新增'\0',而是src遇到'\0' 就結束

char *my_strncat(char *dest,const char *src,unsigned int len)

6,strcmp

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

return *str1-*str2;

}

7,strncmp

int my_strncmp(const char *str1,const char *str2,unsigned int len)

str1++;

str2++;

} return 0;

}

8,strchr

在乙個字串中查詢乙個字元第一次出現的位置,如果沒有則返回null

char *my_strchr(const char *str,char ch)

return null;

}

9,strrchr

查詢乙個字元在字串最後出現的位置,沒有則返回null

char *my_strrchr(const char *str,char ch)

tmp++;

} return ptr;

}

10,strstr

在str1找第一次出現str2的起始位置,如果沒有則返回null,str2為空字串則返回str1

char *my_strstr(const char *str1,const char *str2)

while(*str1)

if(*str2=='\0')

cur++;

str1=cur;

str2=tmp;

} return null;

}

11,atoi

字串轉換為int型整數,字串前面允許有若干空格,和+,-號。符號位後面必須是數字字元才算有效,如果遇到非法字元,則停止轉換,返回前面轉換好的數字。

需要考慮的問題:

指標是否為null

字串是否為空串:空串為0

空白字元

正負號問題

溢位問題

異常字元處理

一些情況

" 1234" ->1234

" +1234" ->1234

" -1234" ->-1234

"-123 4" ->-123

"a1234" ->0

"+ 1234" ->0

"" ->0

int my_atoi(const char *str)

if(*tmp=='-')

else if(*tmp=='+')

while(*tmp)

if(num<0)

buf[i++]='\0';//開始把第乙個字元設為'\0'

while(num)

if(flag==1)

else//把倒序的字串翻轉

while(j13,memset

void* my_memset(void *src,int ch,int n)

return ret;

}

14,memcpy(不能正確處理有重複,且src在dest前的情況)

void* my_memcpy(void *dest,void *src,int n)

return ret;

}

15,memmove(利用處理上述情況)

void* my_memmove(void* dest,void* src,int n)

} else }

return ret;

}

常見字串函式的原型!!!

1 strcat 將指標指向的字串放到目的字串後 cpp char strcat char strdest,const char strscr 將源字串加const,表明其為輸入引數 向該字串的結束標誌 0 while strdest strscr 是while strdest strscr 0 的...

Python常見字串方法函式

1 大小寫轉換 s.lower s.upper 前者將s字串中所有大寫字母轉為小寫,後者相反 s.title s.capitalize 前者返回s字串中所有單詞首字母大寫且其他字母小寫的格式,後者返回首字母大寫 其他字母全部小寫的新字串。s.swapcase 將s字串中所有字母做大小置換,大寫變小寫...

常見字串類

string 不可變字串,底層使用的是字元陣列儲存的字串 private final char value stringbuffer 可變字串,繼承自abstractorbuilder,可變長,底層也是字串陣列 private char value stringbuilder 可變字串,繼承自abs...