自定義方法實現strcpy,strlen, strcat, strcmp函數,了解及實現原理


位置計算字符串長度

//strlen()函數,當遇到'\0'時,計算結束,'\0'不計入長度之內

//字符串的拷貝
        //strcpy(字符串1,字符串2);
        //把字符串2中從一個元素到一個'\0'(包括'\0')的字符串,拷貝到字符串1(CNG字符串1的第一個元素開始)
        //注意:如果做拷貝,字符串1應該足夠大,否則會越界

        //字符串的拼接
        //strcat(字符串1,字符串2)
        //把字符串2從第一個元素到第一個'\0'(包括'\0')的字符串,拼接到字符串1的第一個'\0'(從'\0'開始)后面

 

        //字符串的比較
        //strcmp(字符串1, 字符串2)
        //0:表示兩個字符串相等
        //用字符串1的每一個元素和字符串2對應的元素做比較(字符串1元素的ASICC值 - 對應字符串2元素的ASICC值),當比較的結果不為0時,結束,或者當兩個字符串對應的元素都

 

//自定義實現計算字符串的長度

unsigned long myStrlen(char string[])
{
    unsigned long length = 0;
    
    while (string[length] != '\0') {
        length++;
    }
    
    return length;
}
//自定義實現字符串的拷貝
void myStrcpy(char string1[], char string2[])
{
    int i = 0;
    while (string2[i] != '\0') {
        string1[i] = string2[i];
        i++;
    }
    string1[i] = '\0';
}
//自定義函數實現字符串的憑拼接
void myStrcat(char string1[], char string2[])
{
    //string1'\0'位置
    int i = 0;
    while (string1[i] != '\0') {
        i++;
    }
    
    //string2加到string1后面
    int j = 0;
    while (string2[j] != '\0') {
        string1[i++] = string2[j++];
    }

//不要忘記在最后添加\0
    string1[i] = '\0';
}
//自定義函數實現字符串的比較
int myStrcmp(char string1[], char string2[])
{
    int i = 0;
    while (string1[i] == string2[i] && string1[i] != '\0') {
        i++;
    }
    
    return string1[i] - string2[i];
}

 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM