常用的字符串小code

/**
 * This c Project just for test
 * 字符串相关的操作
 * author :pointer
 * date:2015-12-21
 */
#include <stdio.h>
#include <stdlib.h>

char *my_strcpy(char* dst, const char* src);
char *my_strcat(char *dest, const char *src);
char my_strstr(const char *str, char c);
int my_strlen(const char *str);
void *my_memcpy(void * dest, const void *src, int count);

int main() {

	char* src = "hello world";
	char* dst = (char*) malloc(15); //use for test
	char* temp_str = NULL;
	char temp_char;
	int len = 0;

	temp_str = my_strcpy(dst, src);
	printf("the my_strcpy result is %s\n", temp_str);

	temp_str = my_strcat(my_strcpy(dst, src), src);
	printf("the my_strcat result is %s\n", temp_str);

	temp_char = my_strstr(src, 'd');
	printf("the my_strstr result is %c\n", temp_char);

	len = my_strlen(src);
	printf("the my_strlen result is %d\n", len);

	printf("Press any key to continue...\n");
	getchar();
	return 0;
}
//字符串复制
char* my_strcpy(char* dst, const char* src) {
	if (dst == NULL || src == NULL) {
		printf("null");
		return NULL;
	}
	char* temp = NULL;
	temp = dst;

	while ((*dst++ = *src++) != '\0')
		;

	return temp;
}
//字符串追加
char *my_strcat(char *dest, const char *src) {
	char* temp = NULL;

	if (dest == NULL || src == NULL) {
		printf("null");
		return NULL;
	}

	temp = dest;

	while (*dest)
		dest++;

	while ((*dest++ = *src++) != '\0')
		;

	return temp;
}
//字符查找
char my_strstr(const char *str, char c) {
	if (str == NULL) {
		printf("null");
		return 0;
	}
	while ((*str != c) && (*str != '\0'))
		str++;

	if (*str == '\0') {
		printf("null");
		return 0;
	} else {
		return *str;
	}
}
//字符串长度
int my_strlen(const char *str) {

	int n = 0;

	if (str == NULL) {
		printf("NULL");
		return n;
	}

	while (*str != '\0') {
		str++;
		n++;
	}

	return n;
}
//内存拷贝
void *my_memcpy(void * dest, const void *src, int count) {

	char* temp_dest = (char*) dest;
	char* temp_src = (char*) src;
	char *temp = temp_dest;

	if (temp_dest == NULL || temp_src == NULL) {
		printf("null");
		return NULL;
	}

	if (0 == count) {
		printf("error input the count >0\n");
		return NULL;
	}

	while (count-- > 0) {
		*temp_dest++ = *temp_src++;
	}

	return temp;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值