(C语言)字符串函数strcpy和strlen的实现,以及简单的文字编程题(派大星看了都会写)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 一、字符串库函数strcpy的实现
  • 二、字符串库函数strlen的实现
    • 三,简单的文字编程题


提示:以下是本篇文章正文内容,下面案例可供参考

一、字符串库函数strcpy的实现

#include<stdio.h>
//#include<string.h>
#include<assert.h>
void my_strcpy(char* dest, char* src)
{
	assert (dest != NULL);//断言传进来的不会是空指针
	assert(src != NULL);
	while (*src != '\0')//设置循环条件,字符串最后会有个'\0'
	{
		*dest = *src;
		dest++;
		src++;
	}
	*dest = *src;//处理'\0',将'\0'也拷贝进去
}
//简写版
void my_strcpy(char* dest, char* src)
{
	assert(dest && src);
	while (*dest++ = *src)
	{
		;
	}
}
int main()
{
	char arr1[20] = "xxxxxxxxxxxxx";
	char arr2[] = "hello";
	my_strcpy(arr1, arr2);
	printf("%s\n", arr1);

	return 0;
}

二、字符串库函数strlen的实现

#include<stdio.h>
//#include<string.h>
#include<assert.h>
int my_strlen (char *dest)//定义一个int 类型的函数
{
	int i=0;
	assert(dest!=NULL);
	while (*dest != '\0')//当指针向后运动没遇到'\0',i++
	{
		i++;
		dest++;
	}
	return i;//返回i
}

int main()
{
	char arr1[20] = "xxxxxxxxxxxxx";
	int i=0;
	i = my_strlen(arr1);//定义一个i去接收返回值
	printf("%d\n", i);

	return 0;
}

三、简单的文字编程题

日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。
以下为4个嫌疑犯的供词:
A说:不是我。
B说:是C。
C说:是D。
D说:C在胡说
已知3个人说了真话,1个人说的是假话。
现在请根据这些信息,写一个程序来确定到底谁是凶手

#include<stdio.h>
int main()
{
	int killer = 0;
	for (killer = 'a'; killer <= 'd'; killer++)
	{//利用了判断语句对就为1,错就为0的特点,加上字符所对应的ASCLL码值是连续的
		if ((killer != 'a') + (killer == 'c') + (killer == 'd') + (killer != 'd') == 3)
		{
			printf("%c\n", killer);
		}
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_62662919/article/details/121871826