一、strcmp函数
strcmp()
函数是 C 语言中的字符串比较函数,用于比较两个字符串是否相等。该函数的原型如下:其中,
str1
和str2
分别为需要进行比较的两个字符串,函数返回值为整型,如果两个字符串相同则返回 0,不同返回-1。
int strcmp(const char *str1, const char *str2);
自实现代码
int myStrcmp(const char *source,const char *dest){
int ret;
while(*source && *source==*dest){
source++;
dest++;
}
ret = *source-*dest;
if(ret == 0){
return 0;
}else{
return -1;
}
}
二、strcpy函数
strcpy
函数可以用来将一个字符串复制到另一个字符串中。该函数的原型如下:需要注意的是,第二个参数是一个指向常量的指针,因为我们不希望在复制源字符串时修改它。
void strcpy(char* dest, const char* src)
自实现代码
void myStrcpy(char* dest, const char* src) {
while (*src != '\0') {
*dest = *src;
src++;
dest++;
}
*dest = '\0';
}
三、strcat函数
strcat
函数可以实现将两个字符串拼接在一起。其函数原型为:其中,
dest
是要拼接到的目标字符串,src
是要拼接的源字符串。实现思路:该函数首先将指针
p
指向dest
字符串的末尾,然后将src
字符串中的字符一个一个拷贝到dest
字符串的末尾,直到遇到'\0'
结束符。最后再在dest
字符串的末尾添加一个'\0'
结束符。最终将dest
字符串返回。
char* strcat(char* dest, const char* src);
自实现代码
char* myStrcat(char* dest, const char* src)
{
char* p = dest;
while (*p != '\0') {
p++;
}
while (*src != '\0') {
*p = *src;
p++;
src++;
}
*p = '\0';
return dest;
}
四、strstr函数
strstr 函数是 C 语言标准库中的一个函数,用于在一个字符串中查找另一个字符串第一次出现的位置。函数原型如下:
这个实现没有考虑性能优化,如果在处理长字符串时可能会比较慢。在实际使用中,可以考虑使用一些更高效的算法来实现 strstr 函数。
char *strstr(const char *haystack, const char *needle)
自实现代码
char *myStrstr(const char *dest, const char *src) {
char *p = (char *) dest;
size_t len = strlen(src);
while (*p) {
if (strncmp(p, src, len) == 0) {
return p;
}
p++;
}
return NULL;
}