一,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...