一、strlen函数
size_t strlen(const char *str)
返回字符串中‘\0’之前的字符个数。
使用如
#include<stdio.h>
#include<string.h>
int main()
{
char arr[] = "abcde";
int n = strlen(arr);
printf("%d", n);
return 0;
}
输出值为5。
strlen函数的模拟实现如下:
#include<stdio.h>
#include<string.h>
int my_strlen(const char* arr)
{
int count = 0;
while (*arr)
{
count++;
arr++;
}
return count;
}
int main()
{
char arr[] = "abcde";
int n = my_strlen(arr);
printf("%d", n);
return 0;
}
二、strcpy函数
char* strcpy(char*destination,char*source)
#include<stdio.h>
#include<string.h>
int main()
{
char arr1[20] = "ed";
char arr2[10] = "abcdefg";
strcpy(arr1, arr2);
printf("%s", arr1);
return 0;
}
strcpy函数模拟如下:
#include<stdio.h>
#include<assert.h>
char* my_strcpy(char* destination, char* source)
{
assert(destination != NULL);
assert(source != NULL);
char* ret = destination;
while (*destination++ = *source++)
{
;
}
return ret;
}
int main()
{
char arr1[20] = "ed";
char arr2[10] = "abcdefg";
my_strcpy(arr1, arr2);
printf("%s", arr1);
return 0;
}
三、strcat函数
strcat函数是在一个字符串的‘\0’处开始追加另一个字符串。
#include<stdio.h>
#include<string.h>
int main()
{
char arr1[20] = "hello ";
char arr2[20] = "world";
strcat(arr1, arr2);
printf("%s", arr1);
return 0;
}
模拟实现:
#include<stdio.h>
#include<string.h>
char* my_strcat(char* arr1, char* arr2)
{
char* ret = arr1;
while (*arr1)
{
arr1++;
}
while (*arr1++ = *arr2++)
{
;
}
return ret;
}
int main()
{
char arr1[20] = "hello ";
char arr2[20] = "world";
my_strcat(arr1, arr2);
printf("%s", arr1);
return 0;
}
四、strcmp函数
strcmp函数是对两个字符串进行比较的函数,通过对字符串中字符的ASCII码的逐一比较,如果两个字符串相同,结果返回零,如果第一个字符串大于第二个字符串,返回大于0的数,否则返回小于零的数。
模拟实现如下:
#include<stdio.h>
#include<assert.h>
int my_strcmp(char* arr1, char* arr2)
{
assert(*arr1 != NULL);
assert(*arr2 != NULL);
while (*arr1 == *arr2)
{
arr1++;
arr2++;
}
return *arr1 - *arr2;
}
int main()
{
char arr1[] = "abcde";
char arr2[] = "abcfe";
int n=my_strcmp(arr1, arr2);
printf("%d", n);
return 0;
}
五、strncpy,strncmp,strncat函数
以上三个函数与strcpy,strcmp和strcat函数很相似,唯一的区别是这三个函数在使用时需要多加一个参数,即需要替换的元素所占字节数,此处以strncpy举例:
#include<stdio.h>
#include<string.h>
#include<assert.h>
int main()
{
char arr1[10] = { 0 };
char arr2[10] = "abcdef";
strncpy(arr1, arr2, 3 * sizeof(char));
printf("%s", arr1);
return 0;
}
以上就是本篇博客全部内容,如果你觉得这篇博客对你有帮助的话,记得点赞收藏关注哦!