常用字符串函数实现

常用字符函数实现:
	1.puts函数: 字符串输出函数
			#include <stdio.h>
			#include <stdlib.h>
			void myputs(char *pDate)
			{
				while(*pDate!=NULL){
				putchar(*pDate++);
				//printf("%c",*pDate++);
   			}
    			printf("\n");
			}
				int main()
			{
				char *p="yl shuai !";
    			myputs(p);
				system("pause");
				return 0;
			}








	2.gets函数: 字符串输入函数
			void mygets(char *pa){
			if(pa==NULL){
				printf("内存非法\n");
		        exit(-1);
			}else{
				while(*pa=getchar()){
					if(*pa=='\n'){
						return;
					}else{
						pa++;
		            }
		        }
		    }
		}
		int main()
		{
			char pa[128]={'\0'};
			//char *p="yl shuai !";
		    myputs("请输入");
		    mygets(pa);
		    myputs(pa);
			system("pause");
			return 0;
		}






	3.strlen函数:字符串计算大小函数
		int mystrlen(char *p){
		int cnt=0;
	    	while(*p!='\0'){
				p++;
	        	cnt++;
	   		}
	    return cnt;
		}
		int main()
		{
			char pa[128]={'\0'};
			char *p="yl shuai !";
		    printf("字符长度:%d\n",mystrlen(p));
			system("pause");
			return 0;
		}






	4.memset函数:字符串初始化函数
	void mymemset(char *p,char c,int size)
	{
		while(size){
			*p++=c;
			size--;
	    }
	}
	int main()
	{
		char *p=NULL;
	    p=(char *)malloc(5);
	    mymemset(p,'a',5);
	    p[128]='\0';
	    myputs(p);
		system("pause");
		return 0;
	}






	5.strcat函数:字符串拼接函数
	void mystrcat(char *p,char *a)
	{
		while(*p !='\0'){
			*p++;
	    }
	    while(*a !='\0'){
			*p++=*a++;
	    }
	    *p='\0';
	}
	int main()
	{
		char p[128]="yl shuai";
	    char *a="hen shuai";
	    mystrcat(p,a);
	    myputs(p);
		system("pause");
		return 0;
	}






	6.strcpy函数:字符串拷贝函数
	char* mystrcpy(char *p,char *a)
	{
		if(p==NULL || a==NULL){
			return NULL;
	    }
	    while(*a !='\0'){
			*p++ =*a++;
	    }
	    *p='\0';
	    return p;
	}
	int main()
	{
		char p[128];
	    char *a="hen shuai";
	    mystrcpy(p,a);
	    myputs(p);
		system("pause");
		return 0;
	}






	7.strncpy函数:字符串最大拷贝函数
	char* mystrncpy(char *p,char *a,int size)
	{
		if(p==NULL || a==NULL){
			return NULL;
	    }
	    while(*a !='\0' && size--){
			*p++ =*a++;
	    }
	    *p='\0';
	    return p;
	}
	int main()
	{
		char p[128];
	    char *a="hen shuai";
	    mystrncpy(p,a,3);
	    myputs(p);
		system("pause");
		return 0;
	}






	8.strchr函数:字符查找函数
	char* mystrchr(char *dest,char c)
	{
		while(*dest++ !='\0'){
			if(*dest==c){
				return (char *)dest;
	        }
	    }
	    return NULL;
	}
	int main()
	{
		char dest[] ="yl hen shuai";
	    printf("date:%s\n",mystrchr(dest,'e'));
		system("pause");
		return 0;
	}







	9.strstr函数:字符串查找函数
	char *mystrstr (char* des ,char *sour)
	    {  
	    	
	    	while (*des++!='\0')
	    	{  
	    	    char *d=(char *)des; 
	    		while(*des==*sour)
	    		{
	    			des++;
	    			sour++;
	    		}
	    	if (*sour==0)
	    	return d;
	    	}
	    	return NULL;
	    }
	int main()
	{
		char str1[]="i am a student";
	    printf ("%s\n",mystrstr (str1,"am"));
		system("pause");
		return 0;
	}







	10.strcmp函数:字符串比较函数
	int mystrcmp(char* src,char* dst)
	{
	    int ret = 0;
	    while( !(ret = *(char *)src - *(char *)dst)&& *dst)
	    {
	        src ++;
	        dst ++;
	    }
	    if( ret < 0) ret = -1;
	    else if(ret > 0) ret = 1;
	    return ret;
	}
	int main()
	{
		char *str="1234";
		char *str1="1234";
	    printf ("%d\n",mystrcmp(str,str1));
		system("pause");
		return 0;
	}






	11.strupr函数:小写转大写
	void mystrupr(char *str)
{
    while (*str != '\0')         //判断字符串是否结束
    {
        if ((*str) >= 'a' && (*str) <= 'z')    //判断是否小写字母
        {
            *str = *str - 32;    //小写转大写 A--65 a--97

        }
        str++;                    //继续循环
    }
}


int main()
{
	
    char str[50] = "abcde";
    mystrupr(str);            //小写转大写
    printf("%s\n", str);            //NOTEPAD
	system("pause");
	return 0;
}





12 strlwr函数:大写转小写
void mystrlwr(char *str)
{
    while (*str != '\0')         //判断字符串是否结束
    {
        if ((*str) >= 'A' && (*str) <= 'Z')    //判断是否大写字母
        {
            *str = *str + 32;    //大写转小写 A--65 a--97

        }
        str++;                    //继续循环
    }
}
int main()
{
	
    char str[50] = "abcde";
    mystrlwr(str);          //大写转小写
    printf("%s\n", str);            //notepad
	system("pause");
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值