Three ways to simulate strlen

The first: use a counter

size_t my_strlen(const char* str)
{
	assert(str);
	size_t count = 0;
	while (*str)
	{
		count++;
		str++;
	}
	return count;
}

The second: recursion (without creating temporary variables)

size_t my_strlen(const char* str)
{
	assert(str);
	if (*str == '\0')
	{
		return 0;
	}
	return 1 + my_strlen(str + 1);
}

The third type: pointer - pointer

size_t my_strlen(const char* str)
{
	assert(str);
	char* ret = (char*)str;
	while (*str)
	{
		str++;
	}
	return str - ret;
}

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324085241&siteId=291194637