当前位置:首页 » 《资源分享》 » 正文

字符串函数的使用以及模拟实现(一)_执久呀的博客

6 人参与  2021年09月15日 09:23  分类 : 《资源分享》  评论

点击全文阅读


目录

    一、前言

    二、字符串函数

        1.strlen函数

strlen函数模拟实现

2.strcpy函数

         strcpy函数模拟实现

一、前言

     字符串函数也是库函数,他给我们日常编程提供了极大的帮助,所以我们必须认识并且学会这些函数的使用。(头文件是string.h)

二、字符串函数

1.strlen函数

函数的参数形式 size_t  strlen(const char* str);

size_t表示的是无符号数,const放的位置表示*str所指向的内容不可以被改变。

strlen函数的特点是遇到’\0’就停止了,且只能用来求字符的长度

具体实现如下:

#include<stdio.h>
#include<string.h>

int main()
{
  char arr[]={"yangying"};//杨颖
  int len=strlen(arr);
  printf("len=%d",len);
  return 0;
}

    这样一个简单的strlen用法就写完了,但是不代表这个函数到此结束啊,满级选手你说是吧

那么既然还没结束,我们显然还要讲讲这个函数实现的原理(直接模拟实现一下)。ok!!!!

咱们废话不多说,直接开整。

strlen函数模拟实现

#include<stdio.h>

#include<assert.h>

int my_strlen(char *p)//用p指针去接受传过来的arr数组首元素地址。也可以用arr[]接收
 {
   assret(p!=NULL);
    int count=0;//用来计数的
   while(*p)//也可以写成*p!='\0'
   {
      p++;     //这里也可以写成while(*p++)
     count++;
   }
 return count;//返回count的值
 }

int main()
 {
  char arr[30]={0};

  printf("请输入要计算的字符串长度\n");

  scanf("%s",&arr);

  int len=my_strlen(arr);//模拟函数的创建,用len接受他的返回值

  printf("len=%d\n",len);
 
  return 0;
 }

注意:strlen是无符号是,所以strlen("字符串")-strlen("字符串")必是大于0的数。

#include<stdio.h>
#include<string.h>

int main()
{
	size_t count = strlen("kong") - strlen("hellochao");//得到的结果必定大于0
	printf("count=%u", count);
	return 0;
}

得到的结果为

 为负数存的是补码,以%u打印打印出无符号的补码

2.strcpy函数

函数的参数形式char* strcpy(char*destination,const char*source);

该参数说明了strcpy返回类型是char类型的指针,将源头(不能被改)拷贝到目的地。

strcpy特点和strlen类似,遇到‘\0’就停止拷贝,也是只能拷贝字符,目的地的空间必须大些以便

于存下源头文件。

具体实现如下:

#include<stdio.h>

#include<string.h>

int main()
{
  char arr1[30]={"hello"};

  char arr2[30]={"kongchao"};

  strcpy(arr1,arr2);

  printf("%s",arr1);

 return 0;
}

strcpy函数模拟实现

#include<string.h>

#include<string.h>

#include<assert.h>

char*my_strcpy(char*dest,const char*src)

 {
   assert(dest&&src);//断言,防止传过来是NULL;

    char*pp=dest;//记下dest的初始地址防止找不到

    while(*dest++=*src++)
     {
        ;     //这里啥也不做;
     }
  return pp;//返回初始地址
 }


int main()

 {
   char arr1[30]={"nihao"};
     
   char arr2[20]={"haohaoxuexi"};

    my_strcpy(arr1,arr2);

   printf("%s",arr1);

   return 0;
   
 }

小伙伴们学习愉快,希望大佬们指正

顺便支持一波


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/27824.html

函数  字符串  模拟  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 前尘难再温,申淮霆嵩思予番外+完结_前尘难再温,申淮霆嵩思予番外+完结
  • 填我十万八千梦结局+番外(沈昭宜傅沉砚)_(填我十万八千梦结局+番外沈昭宜傅沉砚后续)填我十万八千梦列表沈昭宜傅沉砚_笔趣阁(填我十万八千梦结局+番外)
  • 沈昭宜傅沉砚(填我十万八千梦结局+番外)_(沈昭宜傅沉砚)列表_笔趣阁(填我十万八千梦结局+番外)
  • 前尘难再温列表_前尘难再温(申淮霆嵩思予)
  • 全书浏览前尘难再温+后续+结局(申淮霆嵩思予)_前尘难再温+后续+结局(申淮霆嵩思予)全书结局
  • 老婆迷信害死丈母娘,知道真相后她后悔疯了(吴茉莉李秀全)列表_老婆迷信害死丈母娘,知道真相后她后悔疯了(吴茉莉李秀全)老婆迷信害死丈母娘,知道真相后她后悔疯了在线
  • [男友的未婚妻不是我]章节限时抢先看‌_「顾川阿月宝贝」后续在线阅读
  • 「你是我未拆的遗书」最新章节目录番外+全文_[裴谨言桑年]小说章节分享
  • 老公把小狗崽塞进我子宫口碑神作必读篇章_[子宫老公狗宝宝]后续完结版
  • 我在回忆里万劫不复优质(秦见鹿谢梵声)_我在回忆里万劫不复优质秦见鹿谢梵声
  • 完结文我在回忆里万劫不复完结+番外列表_完结文我在回忆里万劫不复完结+番外(秦见鹿谢梵声)
  • 爱你是判决无期全文完结版阅读_[宋曦语裴时域林安安]人物羁绊章节精选

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1