【让你从0到1学会c语言】字符串函数详解及模拟实现(一)

简介: 【让你从0到1学会c语言】字符串函数详解及模拟实现(一)

作者:喜欢猫咪的的程序员

专栏:《C语言》

喜欢的话:世间因为少年的挺身而出,而更加瑰丽。                                  ——《人民日报》

目录

 前言:什么是字符串函数?

字符串函数:

strlen函数:

strlen介绍:

strlen的注意点:

strlen的使用:

例子代码:

运行结果:

strlen与sizeof的区别:

相同点:

不同点:

sizeof和strlen在计算字符串时的不同计算方式:

strlen的模拟实现:

原理:

模拟实现:

运行结果:

strcpy函数:

strcpy介绍:

strcpy函数的注意点:

strcpy函数的使用:

例子代码:

运行结果:

strcpy的模拟实现:

原理:

模拟实现:

运行结果:

strcat函数:

strcat函数介绍:

strcat函数注意点:

strcat函数的使用:

例子代码:

运行结果:

strcat函数模拟实现:

原理:

模拟实现:

运行结果:

strcmp函数:

strcmp函数介绍:

strcmp函数注意点(返回值):

我们如何两个字符串如何比较:

strcmp函数的使用:

例子代码:

运行结果:

strcmp函数模拟实现:

原理:

模拟实现:

运行结果:

strncpy函数:

strncpy函数介绍:

strncpy函数注意点:

strncpy函数的使用:

例子代码:

运行结果:

strncpy函数的模拟实现:

原理:

模拟实现:

运行结果:

strncat函数:

strncat函数介绍:

strncat函数的使用:

例子代码:

运行结果:

strncat函数模拟实现:

原理:

模拟实现:

运行结果:

strncmp函数:

strncmp函数介绍:

strncmp函数注意点:

strncmp函数的使用:

例子代码:

运行结果:

strncmp函数的模拟实现:

原理:

模拟实现:

运行结果:


前言:什么是字符串函数?


字符串函数(String processing function)也叫字符串处理函数,指的是编程语言中用来进行字符串处理的函数,如C,pascal,Visual以及LotusScript中进行字符串拷贝,计算长度,字符查找等的函数。


字符串函数:


  • 求字符串长度
  • strlen

  • 长度不受限制的字符串函数
  • strcpy
  • strcat
  • strcmp

  • 长度受限制的字符串函数介绍
  • strncpy
  • strncat
  • strncmp

  • 字符串查找
  • strstr
  • strtok

  • 错误信息报告
  • strerror

  • 字符操作
  • 内存操作函数
  • memcpy
  • memmove
  • memset
  • memcmp

  • atoi函数

strlen函数


strlen介绍:

用处:计算字符串长度。

参数:str为char*的指针(地址),为字符串的起始地址。

返回值:为size_t,为 字符串的长度。

头文件为:

#include<string.h>

strlen的注意点:

  • 注意函数的返回值为size_t,是无符号的( 易错 )
  • 参数指向的字符串必须要以 '\0' 结束。

strlen的使用:

例子代码:

int main()
{
  char p[20] = "asasf";
  int q = strlen(p);
  printf("%d", q);
  return 0;
}

运行结果:

strlen与sizeof的区别:

我们知道strlen和sizeof都是计算数据大小的。

我们来说一下:strlen和sizeof异同点。

相同点:

sizeof和strlen的返回值都是size_t(ize_t的全称应该是size type,就是说一种用来记录大小的数据类型‘)。

不同点:

  • strlen是一个库函数,而sizeof是一个操作符。
  • sizeof是计算数据占用内存的大小,单位是字节。strlen是字符串长度,只能运用于字符串。


sizeof和strlen在计算字符串时的不同计算方式:


  • strlen是只能用来计算字符串的长度的,计算\0前面有几个数(不包括\0),\0前面有几个数strlen的结果就是几。
  • sizeof不止可以用来计算字符串的长度,计算int类型的占用的字节大小也可以。sizeof计算的是字符串在内存中占用几个字节。会包括/0

详细部分以及示例可看我的例外一篇博客:

(4条消息) C语言语言:探究sizeof和strlen的区别_一个喜欢猫咪的程序员的博客-CSDN博客

https://blog.csdn.net/m0_69061857/article/details/126288232?spm=1001.2014.3001.5501


strlen的模拟实现:

原理:

我们只要定义一个个数,每遇到一个字符,个数++就好,'\0'不要个数++就好。

模拟实现:

#include<stdio.h>
size_t my_strlen(const char* str)
{
  int count = 0;
  while (*str)
  {
    count++;
    str++;
  }
  return count;
}
int main()
{
  char* ch="abcdefgh";//需要计算的字符串
  int sz = my_strlen(ch);
  printf("%d\n", sz);
  return 0;
}

运行结果:


strcpy函数


strcpy介绍:



用处:用于字符串复制,将一个字符串复制给例外一个字符串,


参数 :两个参数,第一个参数是目标字符串的指针(地址),第二个是要复制的字符串的指针(地址),都为char*类型。


返回值:为char*类型,为目标字符串的首字符的指针(地址)。


头文件:#include<string.h>


strcpy函数的注意点:

  • 会将要复制的字符串中的 '\0' 拷贝到目标字符串。
  • 目标空间必须足够大,以确保能存放源字符串。
  • 目标空间必须可变。不能是常量字符串


strcpy函数的使用:

例子代码:

int main()
{//strcpy的使用
  char p1[20] ;//目标字符串
  char p2[10] = "qqqqq";//要复制的字符串
  strcpy(p1, p2);
  printf("%s", p1);
  return 0;
}

运行结果:


strcpy的模拟实现:

原理:

我们要将要复制的字符串中的字符一个个赋值给目标字符串,记得'\0'也要赋过去哦。

模拟实现:

#include<string.h>
void my_strcpy(char a1[], char a2[])
{
  for (int i = 0; i < strlen(a1); i++)
  {
    a1[i] = a2[i];
  }
}
int main()
{//strcpy的模拟实现
  char a1[] = "xxxxxxxxxx";//目标字符串
  char a2[] = "abcdef";//要复制的字符串
  printf("%s\n", a1);
  my_strcpy(a1,a2);
  printf("%s\n", a1);
  return 0;
}

运行结果:

相关文章
|
2月前
|
C语言
C语言中10种常见的字符串函数你都掌握了吗?
C语言中10种常见的字符串函数你都掌握了吗?
|
13天前
|
C语言
C语言:字符函数和字符串函数(strlen strcat strcmp strncmp等函数和模拟实现)
C语言:字符函数和字符串函数(strlen strcat strcmp strncmp等函数和模拟实现)
|
28天前
|
程序员 C语言 开发者
C语言库函数 — 字符串函数(含模拟实现字符串函数)
C语言库函数 — 字符串函数(含模拟实现字符串函数)
37 0
|
29天前
|
算法 C语言
字符串函数-C语言
字符串函数-C语言
|
1月前
|
C语言
【C语言】字符串函数strcpy&&strcat&&strcmp&&strstr的使⽤和模拟实现2
【C语言】字符串函数strcpy&&strcat&&strcmp&&strstr的使⽤和模拟实现
|
1月前
|
存储 C语言
【C语言】字符串函数strcpy&&strcat&&strcmp&&strstr的使⽤和模拟实现1
【C语言】字符串函数strcpy&&strcat&&strcmp&&strstr的使⽤和模拟实现
|
2月前
|
C语言
C语言第二十六弹---字符串函数(下)
C语言第二十六弹---字符串函数(下)
|
2月前
|
C语言
C语言第二十五弹---字符函数和字符串函数(上)
C语言第二十五弹---字符函数和字符串函数(上)
|
2月前
|
C语言
C语言从入门到实战——常用字符函数和字符串函数的了解和模拟实现
字符函数和字符串函数都是在编程中用来处理字符和字符串的函数。 字符函数是用来处理单个字符的函数,比如查找、替换、转换大小写、比较等操作。
31 0
|
2月前
|
程序员 C语言
C语言--------字符串函数(3)
C语言--------字符串函数(3)
16 0