实现字符串函数(上)

我们自己实现库函数:
strcpy();
strcat();
strstr();
strchr();

void Strcpy(char* a, char* b){

	assert(a != NULL && b != NULL);  
	char *start = a;
	while ( *b != '\0'){
		*start = *b;
		++b;
		++start;
	}
	*start = '\0';
	printf("%s\n", a);
}


    void Strcat(char* a, char* b){
    	assert(a != NULL && b != NULL);
    	char* p = a;
    	while (*p != '\0'){
    	
    		++p;
    	}
    	while (*b != '\0'){
    		*p = *b;
    		++p;
    		++b;
    	
    	}
    }





    int Strstr(char *a, char* b){
    	assert(a != NULL && b != NULL);
    	char* black_a = a;
    	char* red = a;
    	char* black_b = b;
    	while (*black_a != '\0'){
    		red = black_a;
    		black_b = b;
    		while (*black_b != '\0'
    			&& (*black_a != '\0')
    			&& (*red == *black_b)){
    
    			++red;
    			++black_b;
    		}
    		if (*black_b == '\0'){
    			printf("找到了\n");
    			return 1;
    		
    		}
    		else { ++black_a; }
    	}
    
    	printf("没找到\n");
    	return 0;
    }
int Strchr(const char *str,char mode){
	assert(str != NULL);
	int index = 1;
	while (*str != '\0'){
		if (*str == mode){
			printf("找到了:%d\n", index);
			return index;
		
		}
		++str;
		++index;
	
	}
	return 0;
}

第一个语句为断言函数assert();
需要在头文件声明<assert.h>

当括号里面的表达式为0时,终止程序,我写在第一句是为了防止访问0号内存,防止未定义行为。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值