一 函数功能介绍:
1>
strlen() 字符串长度的计算
返回值为unsigned int 的长度
2>
strcmp(字符串1 字符串2) 两个字符串的比较。
返回值>1: 字符串1大
返回值<1: 字符串2大
返回值 = 0 :两个字符串相等
3>
strcpy() 字符串的拷贝
返回值:第一个字符串的首地址
4>
strcat() 字符串的拼接
返回值:第一个字符串的首地址
二 代码封装函数:
数组传递:
#include<stdio.h>
#include<string.h>
unsigned int my_strlen(char src[]); //计算长度的封装
char * my_strcpy(char dest[],char src[]); //拷贝的封装
int my_syrcmp(char s1[],char s[]); //比较两个字符串的封装
char * my_strcat(char dest[],char src[]); //两个字符串拼接的函数的封装
int main(int argc, const char *argv[])
{
char s[20]="hello";
char c[20]="world";
printf("字符串比较为:%d\n",my_syrcmp(s,c));
printf("字符串的拼接为:%s\n",my_strcat(s,c));
printf("字符串长度为: %d\n",my_strlen(s));
my_strcpy(s,c); //字符串拷贝
printf("更改后的字符串为:%s\n",my_strcpy(s,"YMZSSSSSSS!"));
return 0;
}
//*********字符串的长度**********
unsigned int my_strlen(char src[]){
int i = 0;
while(src[i]!='\0'){
i++;
}
return i ;
}
///*********字符串的拷贝*********
char * my_strcpy(char dest[],char src[]){
int i = 0;
while(src[i]!='\0'){
dest[i] = src[i];
i++;
}
dest[i] = '\0'; //给字符串尾部加‘\0’;
return dest;
}
/**********字符串的比较******/
int my_syrcmp(char s1[],char s2[])
{
int i =0;
int j = 0;
while(s1[i]!='\0'&&s2[j]!='\0'){
if(s1[i]-s2[j]==0){
i++;
j++;
}else if(s1[i]-s2[j]<0){
return s1[i]-s2[j];
}else{
return s1[i]-s2[j];
}
}
return s1[i]-s2[j];
}
/************字符串的拼接**********/
char * my_strcat(char dest[],char src[]){
int i = 0;
int j = 0;
while(dest[i]!='\0'){
i++;
}
while(src[j]!='\0'){
dest[i] =src[j];
i++;
j++;
}
dest[i] = '\0'; //给字符串尾部加'\0'
return dest;
}
指针传递:
#include<stdio.h>
unsigned int my_strlen(char *s); //计算长度
int my_strcmp(char *s ,char *a); //字符串比较
char * my_strcat(char * s,char *a); //字符串拼接
char * my_strcpy(char * s,char *a); // 字符串拷贝
int main(int argc, const char *argv[])
{
char arr1[20] = "abcdg";
char arr2[20] ="higklmn";
char *p = arr1;
char *q = arr2 ;
printf("字符串的长度为:%u\n",my_strlen(p));
printf("字符串的比较为:%d\n",my_strcmp(p,q));
printf("字符串的拼接为:%s\n",my_strcat(p,q));
printf("更改后的字符串为:%s\n",my_strcpy(p,q));
return 0;
}
unsigned int my_strlen(char *s)
{
int i = 0;
while(*s!=0){
s++;
i++;
}
return i;
}
char * my_strcat(char * s,char *a){
char * start = s;
while(*s!='\0'){
s++;
}
while(*a!='\0'){
*s = *a;
s++;
a++;
}
*s='\0';
return start;
}
char * my_strcpy(char * s,char *a){
char * start =s;
while(*a!='\0'){
*s = *a;
s++;
a++;
}
*s = '\0';
return start;
}
int my_strcmp(char *s ,char *a){
while(*s != '\0'){
if(*s != *a){
return *s-*a;
}
s++;
a++;
}
return *s-*a;
}
三 实现的结果:
数组传递:
指针传递: