這篇文章主要介紹C語言字符串函數怎么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
字符串以‘\0'作為結束標志,strlen函數返回的是在字符串中‘\0'前面出現的字符個數(不包括‘\0');
有三種方法可以實現該操作:
①計數器方式
②不能創建臨時變量計數器
③指針-指針
方法一:計數器方式
int my_strlen(const char* str)
{
int count = 0;//定義count用來記錄字符串數組中字符數
while (*str)
{
count++;
str++;
}
return count;
}方法二:不能創建臨時變量計數器
int my_strlen1(const char* str)//以遞歸的方式完成字符串長度函數的模擬
{
if (*str == '\0')
return 0;
return 1 + my_strlen1(str + 1);
}方法三:指針-指針
指針相減得到的是兩個指針之間差距的元素個數,可以根據這種方式來實現strlen函數的模擬
int my_strlen2(char* s)//以此方式進行模擬時不能使用靜態const
{
char* p = s;
while (*p != '\0')
p++;
return p - s;
}測試樣例


將src所指向的字符串包括‘\0'復制到dest所指向的字符串中
源字符串(src所指向的字符串)必須以‘\0'結束
目標空間需足夠大,以確保能存放源字符串
int main()
{
char s[10] = { 'a','b','c','d','e','f' };
char s1[10] = { 'c','c','b' };
printf("%s", my_strcpy(s, s1));//將s1中的字符復制到s空間中
return 0;
}
char* my_strcpy(char* dest, const char* src)
{
char* ret = dest;
assert(dest != NULL);//斷言
assert(src != NULL);//斷言
while ((*dest++ = *src++));
return ret;
}測試結果


最終將s2中以‘\0'為結束符的字符串復制到s中
將src所指向的字符串包括‘\0'復制到dest所指向的字符串后面
源字符串必須以‘\0'結束
目標空間*dest需足夠大,以確保能夠存放源字符串(*src)
char* my_strcat(char* dest, const char* src)
{
char* ret = dest;
assert(dest != NULL);
assert(src != NULL);
while (*dest)//訪問到dest所指向字符串的最后一個字符位置
{
dest++;
}
while ((*dest++ = *src++));//將src指向的字符串復制到dest所指向字符串的后面
return ret;
}測試樣例


將src指向的字符串復制到dest指向的字符串后面,最終得到結果

strcmp函數的作用是比較字符串,用法如下strcmp(字符串1,字符串2),它會比較這兩個字符串:
如果字符串1等于字符串2,strcmp函數返回0;
如果字符串1小于字符串2,strcmp函數返回一個負值;
如果字符串1大于字符串2,strcmp函數返回一個正值.
具體實現如下:
int my_strcmp(const char* dest, const char* src)
{
int ret = 0;
assert(src != NULL);
assert(dest != NULL);
while (!(ret = *(unsigned char*)src - *(unsigned char*)dest) && *dest)
{
++src;
++dest;
}
if (ret < 0)
ret = -1;
else if (ret > 0)
ret = 1;
return ret;
}以上是“C語言字符串函數怎么用”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。