#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//普通下标法
unsigned int mystrlen(const char *str) //const限定权限只能读取
{
int length = 0;
for(int i = 0; ; i++) //死循环
{
if(*(str+i)=='\0') //终止条件
{
break;
}
length++;
}
return length;
}
unsigned int mystrlenaddr( char *str) //指针法
{
int length = 0;
for(char *p = str; *p != '\0'; p++) //用指针保存字符串首地址,直到‘\0'
{
length++;
}
return length;
}
//这个是strcpy函数
char *mystrcpy(char *dest, const char *source) //两个指针代表拷贝字符串和源字符串
{
if(dest == NULL || source == NULL) //函数严谨性 判断是否存在
{
return NULL;
}
for(int i = 0; ; i++)
{
if(*(source+i)=='\0') //终止条件 源字符串尽头
{
dest[i] = source[i]; //附加最后的'\0'
break;
}
dest[i] = source[i];
}
return dest;
}
//指针法
char *mystrcpy(char *dest, const char *source) //两个指针代表拷贝字符串和源字符串
{
if(dest == NULL || source == NULL) //函数严谨性 判断是否存在
{
return NULL;
}
char *phead = dest; //创建指针phead保存dest字符串地址
while(*source != '\0')
{
*dest = *source; //赋值
dest++;
source++;
}
*dest = *source; //处理最后的'\0'
return phead;
}
//这里的循环还可以简写为更厉害的
while(* dest++ = *source++)
{
}
return phead;
这里就实现了自己写的两个字符串常用函数 自己可以在main函数里调用实现 ;