(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;
}
相关文章
|
20天前
|
存储 编译器 C语言
【C语言】数据类型全解析:编程效率提升的秘诀
在C语言中,合理选择和使用数据类型是编程的关键。通过深入理解基本数据类型和派生数据类型,掌握类型限定符和扩展技巧,可以编写出高效、稳定、可维护的代码。无论是在普通应用还是嵌入式系统中,数据类型的合理使用都能显著提升程序的性能和可靠性。
40 8
|
23天前
|
C语言
C语言编程中,错误处理至关重要,能提升程序的健壮性和可靠性
C语言编程中,错误处理至关重要,能提升程序的健壮性和可靠性。本文探讨了C语言中的错误类型(如语法错误、运行时错误)、基本处理方法(如返回值、全局变量、自定义异常处理)、常见策略(如检查返回值、设置标志位、记录错误信息)及错误处理函数(如perror、strerror)。强调了不忽略错误、保持处理一致性及避免过度处理的重要性,并通过文件操作和网络编程实例展示了错误处理的应用。
57 4
|
2月前
|
C语言 C++
【C语言】解决不同场景字符串问题:巧妙运用字符串函数
【C语言】解决不同场景字符串问题:巧妙运用字符串函数
|
2月前
|
存储 C语言
【c语言】字符串函数和内存函数
本文介绍了C语言中常用的字符串函数和内存函数,包括`strlen`、`strcpy`、`strcat`、`strcmp`、`strstr`、`strncpy`、`strncat`、`strncmp`、`strtok`、`memcpy`、`memmove`和`memset`等函数的使用方法及模拟实现。文章详细讲解了每个函数的功能、参数、返回值,并提供了具体的代码示例,帮助读者更好地理解和掌握这些函数的应用。
40 0
|
2月前
|
存储 安全 编译器
深入C语言库:字符与字符串函数模拟实现
深入C语言库:字符与字符串函数模拟实现
|
2月前
|
C语言
C语言常见字符函数和字符串函数精讲
C语言常见字符函数和字符串函数精讲
|
2月前
|
C语言
【C语言】模拟实现深入了解:字符串函数
【C语言】模拟实现深入了解:字符串函数
|
2月前
|
Serverless 编译器 C语言
【C语言】指针篇- 深度解析Sizeof和Strlen:热门面试题探究(5/5)
【C语言】指针篇- 深度解析Sizeof和Strlen:热门面试题探究(5/5)
|
7月前
|
C语言
c语言编程练习题:7-10 算术入门之加减乘除
对于输入的两个整数,按照要求输出其和差积商。
124 0
|
存储 C语言 数据格式
【手把手带你刷题】-C语言编程入门篇(四)
【手把手带你刷题】-C语言编程入门篇(四)
76 0