⾃定义C语⾔中常⽤的字符串操作函数
C语⾔中提供了许多的字符串操作函数,常见的字符串操作函数有以下⼏种:
1,求字符串长度的函数
原型函数:strlen(字符串名称);
实现原理:将字符串名称传⼊该函数,该函数会遍历该字符串,最后将长度返回给我们,注意返回的长度不包括'\0';
2,字符串拷贝函数
原型函数:strcpy(字符串1名称, 字符串2名称);
实现原理:该函数需要传⼊两个字符串名称,所谓拷贝其实是指将字符串2所包含的元素,复制到字符串1中,注意
这⾥的复制其实也包含覆盖的意思,字符串1中原来的元素会被覆盖掉;
3,字符串拼接函数
原型函数:strcat(字符串1名称, 字符串2名称);
实现原理:该函数也需要传⼊两个字符串名称,所谓拼接其实是指将字符串2所包含的元素,拼接到字符串1的后⾯;
4,字符串⽐较函数
原型函数:strcmp(字符串1名称, 字符串2名称);
实现原理:该函数也是需要传⼊两个字符串的名称的,然后同时遍历两个字符串,每次都分别从这两个字符串中取出⼀个字符,
再⽐较这两个字符的ASCII码,如果从字符串1中取出的字符的ASCII码⽐从字符串2中取出的ASCII码要⼤,那么该函数就会返回 1, 如果⼩的话该函数就会返回 -1,如果取到了两个字符串的最后⼀个字符,每⼀个字符的ASCII码都是相等的,那么该函数就会返回 0。
了解完这⼏个字符串操作函数的原理之后,我们就可以不使⽤C语⾔提供的库函数,⾃⼰⾃定义这⼏个函数了;
具体代码如下:
#include <stdio.h>
//函数声明
int myStrlen(char str[]);
void muStrcpy(char str1[], char str2[]);
void myStrcat(char str1[], char str2[]);
int myStrcmp(char str1[], char str2[]);
int main()
{
char str1[] = "TomHe789";
char str2[] = "TomHe";
char str3[] = "789";
c语言定义一个字符串
char str4[] = "abcde";
char str5[] = "abcde";
//打印str1的长度
printf("str1Len = %d\n", myStrlen(str1)); //8
//将str2拷贝到str1中
muStrcpy(str1, str2);
printf("str1 = %s\n",str1); //TomHe
//将str3拼接到str2后⾯
myStrcat(str2, str3);
printf("str2 = %s\n",str2); //TomHe789
//打印出 myStrcmp(str4, str5)的结果
printf("res = %d", myStrcmp(str4, str5)); //0
return0;
}
//⾃定义字符串长度函数
int myStrlen(char str[]){
int len = 0;
while (str[len] != '\0')
{
len++;
}
return len;
}
//⾃定义字符串拷贝函数
void muStrcpy(char str1[], char str2[]) {
int len = 0;
while (str2[len] != '\0' || str1[len] != '\0') {
str1[len] = str2[len];
len++;
}
str1[len] = '\0';
}
//⾃定义字符串拼接函数
void myStrcat(char str1[], char str2[])
{
int len = 0;
int len1 = 0;
while (str1[len] != '\0')
{
len++;
}
while (str2[len1] != '\0')
{
str1[len] = str2[len1];
len++;
len1++;
}
str1[len] = '\0';
}
//⾃定义字符串⽐较函数
int myStrcmp(char str1[], char str2[])
{
int len = 0;
while (str1[len]!='\0' || str2[len]!='\0') {
if(str1[len] > str2[len])
return1;
else if(str1[len] < str2[len])
return -1;
else
len++;
}
return0;
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论