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

简介: (C语言)字符串函数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;
}
相关文章
|
1月前
|
存储 编译器 C语言
【C语言】数据类型全解析:编程效率提升的秘诀
在C语言中,合理选择和使用数据类型是编程的关键。通过深入理解基本数据类型和派生数据类型,掌握类型限定符和扩展技巧,可以编写出高效、稳定、可维护的代码。无论是在普通应用还是嵌入式系统中,数据类型的合理使用都能显著提升程序的性能和可靠性。
63 8
|
2月前
|
C语言
C语言编程中,错误处理至关重要,能提升程序的健壮性和可靠性
C语言编程中,错误处理至关重要,能提升程序的健壮性和可靠性。本文探讨了C语言中的错误类型(如语法错误、运行时错误)、基本处理方法(如返回值、全局变量、自定义异常处理)、常见策略(如检查返回值、设置标志位、记录错误信息)及错误处理函数(如perror、strerror)。强调了不忽略错误、保持处理一致性及避免过度处理的重要性,并通过文件操作和网络编程实例展示了错误处理的应用。
84 4
|
3月前
|
C语言 C++
【C语言】解决不同场景字符串问题:巧妙运用字符串函数
【C语言】解决不同场景字符串问题:巧妙运用字符串函数
|
3月前
|
存储 C语言
【c语言】字符串函数和内存函数
本文介绍了C语言中常用的字符串函数和内存函数,包括`strlen`、`strcpy`、`strcat`、`strcmp`、`strstr`、`strncpy`、`strncat`、`strncmp`、`strtok`、`memcpy`、`memmove`和`memset`等函数的使用方法及模拟实现。文章详细讲解了每个函数的功能、参数、返回值,并提供了具体的代码示例,帮助读者更好地理解和掌握这些函数的应用。
51 0
|
3月前
|
存储 安全 编译器
深入C语言库:字符与字符串函数模拟实现
深入C语言库:字符与字符串函数模拟实现
|
3月前
|
C语言
C语言常见字符函数和字符串函数精讲
C语言常见字符函数和字符串函数精讲
|
3月前
|
C语言
【C语言】模拟实现深入了解:字符串函数
【C语言】模拟实现深入了解:字符串函数
|
3月前
|
Serverless 编译器 C语言
【C语言】指针篇- 深度解析Sizeof和Strlen:热门面试题探究(5/5)
【C语言】指针篇- 深度解析Sizeof和Strlen:热门面试题探究(5/5)
|
C语言 机器学习/深度学习
C语言及程序设计初步例程-36 用循环处理文字
贺老师教学链接  C语言及程序设计初步 本课讲解 统计字符个数 #include &lt;stdio.h&gt; int main() { char c; int count=0; while((c=getchar())!='\n') { count++; } printf("\n"); printf("There are
934 0
|
12天前
|
存储 算法 C语言
【C语言程序设计——函数】素数判定(头歌实践教学平台习题)【合集】
本内容介绍了编写一个判断素数的子函数的任务,涵盖循环控制与跳转语句、算术运算符(%)、以及素数的概念。任务要求在主函数中输入整数并输出是否为素数的信息。相关知识包括 `for` 和 `while` 循环、`break` 和 `continue` 语句、取余运算符 `%` 的使用及素数定义、分布规律和应用场景。编程要求根据提示补充代码,测试说明提供了输入输出示例,最后给出通关代码和测试结果。 任务核心:编写判断素数的子函数并在主函数中调用,涉及循环结构和条件判断。
51 23

热门文章

最新文章