【C语言】字符串处理自定义函数

1、字符串求长度

#include <stdio.h>

int Mystrlen1(const char *str)
{
	int i=0;
	while(*(str++)!='\0')
	{
		i++;	
	}
	
	return i;
}

int Mystrlen2(const char *str)
{
	int i;
	for(i=0;*(str++)!='\0';i++);
	
	return i;
}

int main()
{
	char a[100];
	scanf("%s",a);
	printf("%d\n",Mystrlen1(a));
	printf("%d\n",Mystrlen2(a));
}

运行结果:

     

2、字符串拷贝(复制)

#include <stdio.h>

void Mystrcpy1(char *des,char *src)
{
	while(*src!='\0')
	{
		*(des++)=*(src++);
	}
	*des='\0';
}

void Mystrcpy2(char *des,char *src)
{
	int i;
	for(i=0;*src!='\0';i++)
	{
		*(des++)=*(src++);
	}
    *des='\0';
}

void Mystrcpy3(char *des,char *src)
{
	while(	*(des++)=*(src++));

}

int main()
{
	char a[100]="abcd";
	char b[100]="123";
	Mystrcpy1(a,b);
	printf("%s\n",a);
	
	char c[100]="abcd";
	char d[100]="123";
	Mystrcpy2(c,d);
	printf("%s\n",c);
	
	char e[100]="abcd";
	char f[100]="123";
	Mystrcpy3(e,f);
	printf("%s\n",e);

}

运行结果:

 

3、字符串链接 

#include <stdio.h>

void Mystrcat(char *des,const char *src)
{
	while(*des!='\0')
	{
		des++;
	}
	while(*src!='\0')
	{
		*des++=*src++;
	}
	*des='\0';
}

int main()
{
	char a[100]="abcd";
	char b[100]="123";
	Mystrcat(a,b);
	printf("%s\n",a);

}

运行结果:

 

4、字符串比较

#include <stdio.h>

int Mystrcmp(const char *str1,const char *str2)
{
	while(*str1==*str2 && *str1!='\0')
	{
		str1++;
		str2++;
	}
	if(*str1=='\0'&&*str2=='\0')
	{
		return 0;
	}
	else 
	{
		return *str1-*str2;
	}
}
int main()
{
	printf("%d\n",Mystrcmp("abc","ab"));
	printf("%d\n",Mystrcmp("ab","abc"));
	printf("%d\n",Mystrcmp("abc","abd"));
	printf("%d\n",Mystrcmp("ab","ab"));
	printf("%d\n",Mystrcmp("abad","abc"));
}

运行结果:

 

猜你喜欢

转载自blog.csdn.net/Jacky_Feng/article/details/83658744