C語言字串函式

2021-10-10 18:38:38 字數 1966 閱讀 9204

strlen

求字串長度

size_t strlen (const char * str );

字串已經'\0'作為結束標誌,strlen函式返回的是在字串中'\0'前面出現的字元個數(不包含'\0')

引數指向的字串必須要以'\0'結束

注意引數的返回值為szie_t ,是無符號的

**模擬實現:

size_t my_strlen(const char*str)

return count;

}

二,strcp

char* strcpy(char * destination, const char * source );

源字串必須是以'\0'結束

會將源字串中的'\0'拷貝到目標空間

目標空間必須足夠大,以確保能存放源字串

目標空間必須可變

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

return ret;

}

三,strcmp

int strcmp ( const char * str1, const char * str2 );

第乙個字串大於第二個字串,則返回大於0的數字

第乙個字串等於第二個字串,則返回0

第乙個字串小於第二個字串,則返回小於0的數字

int my_strcmp (const char * src, const char * dst)

if ( ret < 0 )

else if ( ret > 0 )

return( ret );

}

四,strstr

char * strstr ( const char *str2, const char * str1);

返回str1中第一次出現str2的指標,如果str2不是str1的一部分,則返回空指標。

匹配過程不包括終止的空字元,但它在此停止。

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

while (*cp)

if (!*s2)

cp++;

} return (null);

}

五,memcpy

void * memcpy ( void * destination, const void * source, size_t num );

函式memcpy從source的位置開始後複製num位元組的資料到destination的記憶體位置

這個函式在遇到'\0'的時候並不會停下來

如果source和destination有任何的重疊,複製的結果都是未定義的。

void * my_memcpy(void *dst,  const void *src, size_t count)

return ret;

}

六,memmove

void * memmove ( void * destination, const void * source, size_t num );

和memcpy的差別就是memmove函式處理的源記憶體塊和目標記憶體塊的是可以重疊的

如果源空間和目標空間出現重疊,就得使用memmove函式處理

void * my_memmove(void * dst, const void * src, size_t count)

} else

} return(ret);

}

c語言 字串函式

c語言中的字串函式 主要是兩大類,一類是拷貝的,一類是比較的,另乙個就是其他的 拷貝的有 1.strcpy 函式原型 char strcpy char strdestination,const char strsource 函式功能 將strsource的內容拷貝到strdestination中去,...

c語言字串函式

字串連線函式strcat 格式 strcat 字元陣列1,字元陣列2 功能 把字元陣列2連到字元陣列1後面 返值 返回字元陣列1的首位址 說明 字元陣列1必須足夠大 連線前,兩串均以 0 結束 連線後,串1的 0 取消,新串最後加 0 字串拷貝函式strcpy 格式 strcpy 字元陣列1,字串2...

C語言字串函式

1字串拷貝 strcpy str1,str2 str2 str1覆蓋 strncpy str1,str2,n 把str2的n個位元組賦給str1的前n個位元組,其他的不變 並不覆蓋 例子 str1 yaomingyue str2 kkkk strncpy str1,str2,3 結果 str1 kk...