1:strcpy函式將源字串拷貝到目標字串,目標字串的長度必須要大於源字串長度:注釋部分為原始版本,**較為冗長
char *mystrcpy(char *str1, const char *str2)
char *p = str1;
while (*(str2) != '\0')
*str1 = '\0';*/
char *p = str1;
while (*str1++ = *str2++)
return p;
}
2:strcat函式將源字串拼接到目標字串後,目標字串的長度要足夠長容納兩個字串。
char *mystrcat(char *str1, const char *str2)
while (*(str2) != '\0')*/
char *p = str1;
while (*str1 != '\0')
while (*str1++ = *str2++)
return p;
}3:strncat函式將源字串的指定長度拼接到目標字串後面,目標字串的長度要足夠長容納兩個字串。
char *mystrncat(char *str1, const char *str2, int n)
while (n!=0)
return p;
}
const char *mystrstr(const char *str1, const char *str2)
// }
// left = result;//當中間元素不同時退回第一次所指元素位址
// right = result + len2 - 1;
// }
// left++;//進行下乙個元素得判斷
// right++;
//}//return null;//未找到相同字元段時返回空位址。
const char *s1 = str1;
const char *s2 = str2;
const char *start = str1;
while (*start != '\0')
if (*s1 == '\0')
if (*s2 == '\0')
start++;
} return null;
}
const char *mystrchr(const char *str1, char c)
str1++;
} return null;
}
6:strcmp:比較兩個字串的大小,若第乙個字串大於第二個字串返回正數,小於返回負數,等於返回0;
int mystrcmp(const char *str1, const char *str2)
if (*(str1) < *(str2))
if (*(str1) == *(str2))
} return 0;
}
7:strncmp函式比較兩個字串前n個字元,若第乙個字串的前n個字元於第二個字串的前n個字元返回正數,小於返回負數,等於返回0;
int mystrncmp(const char *str1, const char *str2, int n)
if (*(str1) < *(str2))
if (*(str1) == *(str2))
} n--;
} return 0;
}
8:memcpy函式:將源陣列內容拷貝n個位元組數到目標陣列中,陣列的型別不定。且存在記憶體重疊問題是無法完成拷貝。
void *mymemcpy(void *str1, const void *str2, int n)
return p;
}
9:memove:將源陣列內容拷貝n個位元組數到目標陣列中,陣列的型別不定。解決memcpy函式存在的記憶體重疊問題。
void *mymemove(void *str1, const void *str2, int n)
}else
}return p;
}記憶體重疊問題:
str:12
3456
str+2:12
3456
str+2指向3,當str+2作為目標位址,str作為源位址,把str拷貝16個位元組到str+2中,理想拷貝結果為:1 2 1 2 3 4但按照memcpy函式執行時結果為:1 2 1 2 1 2.即存在記憶體重疊問題。
C 實現自定義string類
在一些c 筆試題裡,會有這樣一道題,那就是讓你自己實現乙個簡單的string類。自己在面試的時候就遇到過這個題。在這裡說一下自己是怎麼做的。主要包含一些基本的操作,建構函式 拷貝建構函式和析構函式。pragma once include using namespace std class mystr...
C 自定義String的實現
這個在面試或筆試的時候常問到或考到。已知類string的原型為 class string 請編寫string的上述4個函式。普通建構函式 string string const char str else string的析構函式 string string void 拷貝建構函式 string st...
c 自定義string類
1.標頭檔案部分 define crt secure no warnings pragma once include includeusing namespace std class mystring 2.函式定義部分 include mystring.h mystring mystring mys...