C语言字符串函数学习

字符串长度函数

#include <stdio.h>

size_t mystrlen(const char *str);

int main() {
	size_t re1, re2, re3;
	char str[] = "hello";
	re1 = mystrlen(str);
	re2 = mystrlen2(str);
	re3 = mystrlen3(str);
	
	return 0;
}

size_t mystrlen(const char *str) {
	size_t cnt = 0;
	while(*str++) {
		cnt++;
	}
	return cnt;
}

size_t mystrlen2(const char *str) {
	const char *ori = str;
	while (*str++) {}
	return str - ori -1;
}

size_t mystrlen3(const char *str) {
	const char *ori = str;
	while(*str) {str++;}
	return str - ori;
}

字符串比较函数

/**
* @brief 比较两个字符串大小
* @param str1 第一个字符串
* @param str2 第二个 字符串
* @return int 返回两个字符串第一个不一样的字符的差值
*/
int mystrcmp(const char *str1, const char *str2) {
	while (*str1 != '\0' && (*str1 == *str2)) {
		s1++;
		s2++;
	}
	return (int)*str1 - (int)*str2;
}

字符串复制函数

/**
* @brief 复制字符串到新的字符串数组
* @param dest 目标字符串位置
* @param src 源字符串
* @return 返回目标字符串位置
*/
char *strcpy(char *dest, char *src) {
	char *temp = dest;
	while ((*temp++ = *dest++) != '\0');

	return dest;
}

字符串追加函数

/**
* @brief 字符串追加函数
* @param dest 目标追加位置
* @param src 源字符串
* @return 目标位置指针
*/
char *mystrcat(char *dest, const char *src) {
	char *temp = dest;
	while (*temp != '\0') {
		temp++;
	}
	while ((*temp++ = *src++) != '\0') {}

	return dest;
}

字符串查找函数

/**
* @brief 字符串查找函数
* @param src 要查找的字符串
* @param c 要查找的字符
* @return 返回字符所在的地址
*/
char *mystrchr(const char *src, int c) {
	char target_char = (char)c;
	
	while (*src != '\0') {
		if (*src == c) {
			return (char *)src;
		}
		src++;
	}

	if (target_char == '\0') {
		return (char *)src;
	}
	
	return NULL;	
}
posted @ 2025-12-07 20:52  hillo-hillo  阅读(4)  评论(0)    收藏  举报