函数名: strlen 测量字符串的长度
函数名: strcpy 复制字符串
函数名: strncpy 复制字符串的前n个字符
函数名:strcat 连接两个字符串
函数名: strncat 将一个字符串中的前n个字符连接到另一个字符串中
strcmp 比较两个字符串的大小
其实我们也可以自己编写出实现上述功能的函数。
#include <stdio.h>
#define MAX_SIZE 100
int my_strlen(char *str)
{
int count = 0;
while(*str != '\0')
{
count++;
str++;
}
return count;
}
char *my_strcpy(char *str,char *dest)
{
char *temp = str;
while(*dest != '\0')
{
*temp = *dest;
temp++;
dest++;
}
*temp = '\0';
return str;
}
char *my_strncpy(char *str,char *dest,int len)
{
int i;
char *temp = str;
for(i = 0; i < len; i++)
{
*(temp + i) = *(dest + i);
}
return str;
}
char *my_strcat(char *str,char *dest)
{
char *temp = str;
while(*temp != '\0')
{
temp++;
}
while(*dest != '\0')
{
*temp = *dest;
temp++;
dest++;
}
*temp = '\0';
return str;
}
char *my_strncat(char *str,char *dest,int len)
{
int i;
char *temp = str;
while(*temp != '\0')
{
temp++;
}
for(i = 0; i < len; i++)
{
*(temp + i) = *(dest + i);
}
*(temp + i) = '\0';
return str;
}
int my_strcmp(char *str, char *dest)
{
while(*str != '\0')
{
if(*(str) > *(dest))
{
return 1;
}
else if(*(str) < *(dest))
{
return -1;
}
dest++;
str++;
}
if(*str == '\0'&& *dest == '\0')
{
return 0;
}
else if(*str != '\0' && *dest == '\0')
{
return 1;
}
else if(*str == '\0' && *dest != '\0')
{
return -1;
}
return 0;
}
int main()
{
int count;
int ret;
char str[MAX_SIZE];
char dest[MAX_SIZE];
char *temp1;
char *temp2;
char *temp3;
char *temp4;
printf("please input str:\n");
gets(str);
printf("please input dest:\n");
gets(dest);
count = my_strlen(str);
printf("count = %d\n",count);
temp1= my_strcpy(str,dest);
printf("temp1 = %s\n",temp1);
temp2= my_strncpy(str,dest,5);
printf("temp2 = %s\n",temp2);
temp3 = my_strcat(str,dest);
printf("temp3 = %s\n",temp3);
temp4 = my_strncat(str,dest,5);
printf("temp4 = %s\n",temp4);
ret = my_strcmp(str,dest);
printf("%d\n",ret);
return 0;
}