1.strlen 测量字符串的长度
#include <stdio.h>
#define N 100
int my_strlen(char *str)
{
int count = 0;
while(*str != '\0')
{
count++;
str++;
}
return count;
}
int main()
{
int count;
char str[N];
printf("please input string:\n");
gets(str);
count = my_strlen(str);
printf("count = %d\n",count);
return 0;
}
2. strcpy 复制字符串
#include <stdio.h>
#define N 100
char *my_strcpy(char *str,char *dest)
{
char *temp = str;
while(*dest != '\0')
{
*temp = *dest;
temp++;
dest++;
}
*temp = '\0';
return str;
}
int main()
{
char *temp;
char str[N];
char dest[N];
printf("please input str:\n");
gets(str);
printf("please input dest:\n");
gets(dest);
temp = my_strcpy(str,dest);
printf("temp = %s\n",temp);
return 0;
}
3.strncpy 复制字符串的前n个字符
#include <stdio.h>
#include <string.h>
#define N 100
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;
}
int main()
{
char *temp;
char str[N];
char dest[N];
printf("please input str:\n");
gets(str);
printf("please input dest:\n");
gets(dest);
temp = my_strncpy(str,dest,5);
printf("temp = %s\n",temp);
return 0;
}
4.strcat 连接两个字符串
#include <stdio.h>
#define N 100
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;
}
int main()
{
char *temp;
char str[N];
char dest[N];
printf("please input str:\n");
gets(str);
printf("please input dest:\n");
gets(dest);
temp = my_strcat(str,dest);
printf("temp = %s\n",temp);
return 0;
}
5.strncat 将一个字符串中的前n个字符连接到另一个字符串中
#include <stdio.h>
#define N 100
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 main()
{
char *temp;
char str[N];
char dest[N];
printf("please input str:\n");
gets(str);
printf("please input dest:\n");
gets(dest);
temp = my_strncat(str,dest,5);
printf("temp = %s\n",temp);
return 0;
}
6.strcmp 比较两个字符串的大小
#include <stdio.h>
#define N 100
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 ret;
char str[N];
char dest[N];
printf("please input str:\n");
gets(str);
printf("please input dest:\n");
gets(dest);
ret = my_strcmp(str,dest);
printf("%d\n",ret);
return 0;
}
7.strncmp 将一个字符串中的前n个字符与另一个字符串比较
#include <stdio.h>
#define N 100
int my_strncmp(char *str, char *dest,int len)
{
int i;
for(i = 0;i < len; i++)
{
while(*(str + i) > *(dest + i))
{
return 1;
}
while(*(str + i) < *(dest + i))
{
return -1;
}
if(*(str + i) == '\0'&& *(dest + i) == '\0')
{
return 0;
}
else if(*(str + i) != '\0' && *(dest + i) == '\0')
{
return 1;
}
else if(*(str + i) == '\0' && *(dest + i) != '\0')
{
return -1;
}
}
return 0;
}
int main()
{
int ret;
char str[N];
char dest[N];
printf("please input str:\n");
gets(str);
printf("please input dest:\n");
gets(dest);
ret = my_strncmp(str,dest,5);
printf("%d\n",ret);
return 0;
}