常用的字符串处理函数在我们平时的作用很大,在找工作的笔试面试中也经常会考到,因此,鄙人总结了一下常用的几个字符串处理函数
- strlen
- strcpy && strncpy
- strcat && strncat
- strcmp && strncmp
- strstr
以下为本人自己定义的函数
strlen
strlen是用来获取字符串的长度的函数,当然,不包括最后的 ‘\0’
下面是一个实现接口:
/* realize of strlen*/
void mystrlen(char data[])
{
int i = 0;
int len = 0;
for(i = 0; data[i] != '\0'; i++)
{
len++;
}
printf("len = %d\n", len);
}
strcpy && strncpy
strcpy和strncpy都是用来复制字符串的函数,后者可指定要复制的长度
下面是一个实现接口:
/* realize of strcpy and strncpy */
void mystrcpy(char data[], char data1[])
{
int i = 0;
for(i = 0; data[i] != '\0'; ++i)
{
data1[i] = data[i];
}
data1[i] = '\0';
printf("%s\n", data1);
}
void mystrncpy(char data[], char data1[], int n) //复制前n个字符
{
int i = 0;
for(i = 0; i < n && data[i] != '\0'; ++i)
{
data1[i] = data[i];
}
data1[i] = '\0';
printf("%s\n", data1);
}
strcat&&strncat
strcat和strncat都是用来拼接字符串的处理函数,后者指定拼接内容长度
/* realize of strcat and strncat */
void mystrcat(char data[], char data1[])
{
int len = strlen(data);
int i;
for(i = 0; data1[i] != '\0'; ++i)
{
data[len + i] = data1[i];
}
printf("%s\n", data);
}
void mystrncat(char data[], char data1[], int n) //追加n个字符
{
int len = strlen(data);
int i;
for(i = 0; i < n && data1[i] != '\0'; ++i)
{
data[len + i] = data1[i];
}
printf("%s\n", data);
}
strcmp&&strncmp
strcmp和strncmp均用于比较字符串的大小,即字符串的ASCII码值,后者用于指定比较前几个字符的大小,此函数适合于判断两个字符串是否相等
int mystrcmp(char data[], char data1[])
{
int i;
for(i = 0; ; i++)
{
if(data[i] < data1[i])
{
return -1;
}
else if(data[i] > data1[i])
{
return 1;
}
else if(data[i] == '\0')
{
return 0;
}
}
}
int mystrncmp(char data[], char data1[], int n)
{
int i;
for(i = 0; i < n; i++)
{
if(data[i] < data1[i])
{
return -1;
}
else if(data[i] > data1[i])
{
return 1;
}
else if(data[i] == data1[i])
{
return 0;
}
}
}
strstr
strstr用于匹配字符串的子串,然后返回该子串的首地址
char* mystrstr(char* str1, char* str2)
{
char* s1 = NULL;
char* s2 = NULL;
if(*str2 == '\0')
{
return str1;
}
while(*str1 != '\0')
{
s1 = str1;
s2 = str2;
while(*s1 != '\0' && *s2 != '\0' && (*s1-*s2) == 0)
{
s1++;
s2++;
}
if(*s2 == '\0')
{
return str1;
}
str1++;
}
return NULL;
}
几个常用的字符串函数介绍到此,今后还会陆续补充,有什么不妥的地方还请大家斧正。