恶补c语言之strlen的实现

最近与同学交流c语言库函数的实现,发现自己所学的不能灵活运用,于是乎我就开启猛火力模式,先自己来实现下常见的库函数。

strlen()函数说明

返回指定字符串长度,不包括结束字符‘/0‘

实现原型:

int MyStrlen(const char *str)

{

int n;

while(*str++ != ‘\0‘)

n++;

return n;

}

// 以下函数为测试函数

void main()

{

int m;

char a[100];

printf("please input a string!\n");

gets(a);

m=MyStrlen(a);

printf("%d",m);

}

时间: 2024-10-13 16:00:45

恶补c语言之strlen的实现的相关文章

恶补c语言之strcmp的实现

strcmp()函数说明 按照ASCII表的先后顺序,比较两个字符串中各个对应字符大小:相同则返回0,不同则返回减值. 设这两个字符串为str1,str2, 若str1==str2,则返回零: 若str1>str2,则返回正数: 若str1<str2,则返回负数. 注:不同的编译器对返回值有不同的规定 int strcmp(char* str1, char* str2){ while(*str1 && *str2 && *str1==*str2){ ++str1

恶补C++ 之 类型转换

类型转换,在程序设计中是令人鄙视,无法忍受的存在,但是在某些时候,类型转换又是必须的. 在C语言中,类型转换经常用圆括号和一些标识符组成,但是这种转换形式很不容易被发现,在阅读上也造成了一定的困难. 在C++中,虽然也兼容老式的C语言转换风格,但是更推荐使用C++风格的类型转换:static_cast, const_cast, dynamic_cast, reinterpret_cast.对于这四种类型转换的用法,我将对自己恶补一下. 首先是 static_cast,功能上基本与C风格的类型转换

【恶补】之python一天速成

python一天速成都是骗纸~怎么可能一天~只是快速了解一些基本的 首先我是个python新手,只在网上搜例子然后用python写过一些分析文件的脚本,现在工作需要,要短时间进一步了解python.这篇文章也不是给完全新手看的,还是给对python有一点接触且需要大致掌握或者对其他语言有一定研究的人看的. 一.执行过程 首先python是先编译后解释的语言,与php和java类似,php是先编译成opcode再解释执行,java是编译成.class文件然后由虚拟机执行,只是编译时机不同,php和

恶补Java(十三)之Java IO-----File类的用法

恶补Java---JavaI/O部分之File类的用法(笔记) 在java中,I/O(输入/输出)是比较乏味的事情,因为看不到明显的运行效果,但输入/输出是所有程序都必需的部分--使用输入机制,允许程序读取外部数据(包括来自磁盘.光盘等存储设备的数据).用户输入数据:使用输出机制,允许程序记录运行状态,将程序数据输出到磁盘.光盘等存储设备中. Java的I/O通过java.io包下的类和接口来支持,在java.io包下主要包括输入.输出两种IO流,每种输入.输出流又可分为字节流和字符流两大类.其

恶补java(十)---泛型与集合的再学习

其余的就不多说了,一切都在代码中 package com.gc.generic; /** * JDK5 之前集合对象使用问题: * 1.向集合添加任何类型对象 * 2.从集合取出对象时,数据类型丢失,使用与类型相关方法,强制类型转换 * 存在安全隐患 * * ***************************** * * JDK5中的泛型:允许程序员使用泛型技术限制集合的处理类型 * List<String> list=new ArrayList<String>(); * 从而

C语言之strlen和sizeof

sizeof运算符,它以字节为单位给出数据的大小. strlen()函数以字符为单位给出字符串的长度. 从上面可以明确的看出来,sizeof是运算符,而strlen则是函数. 一.sizeof sizeof的参数有很多,比如数据类型(int.float等).数组(数组作为参数时要使用数组名).指针.结构体.对象.函数等等. 数组--编译时分配的数组空间大小. 指针--存储该指针所用的空间大小(存储该指针的地址的长度,是长整型,一般为4). 类型--该类型所占空间大小. 对象--对象的实际占用空间

恶补mac terminal的命令行知识

一个女孩的前端学习之路,希望可以帮助到别的在编程代码上学习的朋友们. 恶补mac terminal的命令行知识1-对于我来说最重要的几个命令行ls[list] /path : 看看某个路径的内容. cd /path 表示转到跟目录下的path路径中cd path 表示转到当前目录下的path路径中2-清理系统 sudo periodic daily然后回车,输入管理员密码即可.如果把daily换成weekly,则运行的是每周的清理.换成monthly,就是做每月的清理.如果直接输入:sudo p

【linux&amp;oracle】linux&amp;oracle恶补篇

linux&oracle恶补篇 linux同时开两个终端:ctrl+shift+t linux配置yum文件:/etc/yum.repos.d/xx.repo linux切换用户:su - username oracle 连接:sqlplus / as sysdba;conn / as sysdba; grid查看数据库的状态,数据库orcl的target是ofline的如何启动为online: srvctl enable database -d orclsrvctl start databas

C语言实现strlen()4种方法和strcat()3种方法

#include <stdio.h> #include <assert.h> #if 0 // 默认使用法4 // 法1 int strlen(const char* str) { int n; // const char *p = str; //测试这句,这个语句不需要,因为我实参是指针,形参指针改变指向不影响实参指向 for(n = 0; *str != '\0'; n++) { str++; } return n; } #elif 0 // 法2 int strlen(con