字符串函数:strlen函数,strcpy函数,strcat函数,strcmp函数
目录:
- 1.字符串函数strlen
- (1)strlen函数
- (2)strlen的使用
- a.代码
- b.运行结果
- (3)模拟实现strlen函数
- a.代码
- b.运行结果
- (4)注意:
- 2.字符串函数strcpy
- (1)strcpy函数
- (2)strcpy的使用
- a.代码
- b.运行结果
- c.错误举例
- (3)模拟实现strcpy
- a.代码
- 3.字符串函数strcat
- (1)strcat函数
- (2)strcat的使用
- a.代码
- b.运行结果
- (3)模拟实现strcat
- a.代码
- b.运行结果
- 4.字符串函数strcmp
- (1)strcmp函数
- (2)strcmp的使用
- a.代码
- b.运行结果
- (3)模拟实现strcmp
- a.代码
- b.运行结果
1.字符串函数strlen
(1)strlen函数
strlen函数返回的是在字符串中’\0’前面出现的字符的个数
(2)strlen的使用
a.代码
#include<stdio.h>
#include<string.h>
int main()
{char str1[] = "abcdef";printf("%d\n", strlen(str1));return 0;
}
b.运行结果
(3)模拟实现strlen函数
a.代码
#include<stdio.h>
#include<string.h>
size_t MyStrlen(const char* str1)
{size_t len = 0;while (*str1 != 0){++len;++str1;}return len;
}
int main()
{char* str1 = "abcdef";printf("%d\n", MyStrlen(str1));return 0;
}
b.运行结果
(4)注意:
a.指针在传递(赋值,传参数)的过程中,权限不能放大,只能缩小
b.typedef unsigned int size_t
size_t就是无符号的整型
2.字符串函数strcpy
(1)strcpy函数
strcpy是覆盖拷贝,将source全覆盖拷贝到destination,会把’\0’也拷过去,且必须考虑destination的空间够不够
(destination的空间必须>=source的空间)
(2)strcpy的使用
a.代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
int main()
{char p1[] = "abcdef";char* p2 = "hello";strcpy(p1, p2);printf("%s\n", p1);printf("%s\n", p2);return 0;
}
b.运行结果
c.错误举例
代码:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
int main()
{char p1[] = "abcdef";char* p2 = "hello";const char* p3 = "world";strcpy(p2, p3);printf("%s\n", p2);printf("%s\n", p3);return 0;
}
运行结果:
错误分析:
(3)模拟实现strcpy
a.代码
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
void MyStrcpy(char * dst, const char * src)
{while (*src){*dst = *src;++src;++dst;}*dst = '\0';
}
int main()
{char p1[] = "abcdef";const char* p2 = "hello";MyStrcpy(p1, p2);printf("%s\n", p1);printf("%s\n", p2);return 0;
}
b.运行结果
3.字符串函数strcat
(1)strcat函数
strcat追加拷贝,追加到目标空间后面,目标空间必须足够大,能容纳下源字符串的内容
(2)strcat的使用
a.代码
#include<stdio.h>
#include<string.h>
int main()
{char p1[20] = "hello";const char* p2 = " world";strcat(p1, p2);printf("%s\n",p1);return 0;
}
b.运行结果
(3)模拟实现strcat
a.代码
#include<stdio.h>
#include<string.h>
void MyStrcat(char* dst, const char * src)
{//让dst指向'\0'位置while (*dst != '\0'){++dst;}//让dst从'\0'开始,将src赋值给dstwhile (*dst = *src){++dst;++src;}*dst = '\0';
}
int main()
{char p1[20] = "hello";const char* p2 = " world";MyStrcat(p1, p2);printf("%s\n",p1);return 0;
}
b.运行结果
4.字符串函数strcmp
(1)strcmp函数
strcmp比较两个字符串的大小,一个字符一个字符比较,按ASCLL码比较
标准规定:
第一个字符串大于第二个字符串,则返回大于0的数字
第一个字符串等于第二个字符串,则返回0
第一个字符串小于第二个字符串,则返回小于0的数字
(2)strcmp的使用
a.代码
#include<stdio.h>
#include<string.h>
int main()
{char* p1 = "abcdef";char* p2 = "abcdef";char* p3 = "abcd";char* p4 = "bcde";printf("%d\n", strcmp(p1,p2 ));printf("%d\n", strcmp(p1,p3 ));printf("%d\n", strcmp(p3,p4 ));
}
b.运行结果
(3)模拟实现strcmp
a.代码
#include<stdio.h>
#include<string.h>
int MyStrCmp(const char * str1, const char * str2)
{//逐个元素比较while (*str1 && *str2){if (*str1 > *str2){return 1;}else if (*str1 < *str2){return -1;}else //如果两个元素相等,进入下一个继续比较{++str1;++str2;}}//str2比较完了,str1还有if (*str1){return 1;}//str1比较完了,str2还有else if (*str2){return -1;}//str1等于str2else{return 0;}
}
int main()
{char* p1 = "abcd";char* p2 = "abcd";char* p3 = "abcde";char* p4 = "bcd";char* p5 = "b";printf("%d\n", MyStrCmp(p1,p2 ));printf("%d\n", MyStrCmp(p1,p3 ));printf("%d\n", MyStrCmp(p1,p4 ));printf("%d\n", MyStrCmp(p4,p5 ));return 0;
}
b.运行结果
字符串函数:strlen函数,strcpy函数,strcat函数,strcmp函数相关推荐
- C和指针之字符串之strlen、strcpy、 strcat、strcmp使用总结
1.常见字符串相关操作 我们知道有strlen. strcpy.strcat.strcmp.这样一一系列函数 2.实现Demo #include <stdio.h> #include &l ...
- C语言常用字符串函数strlen、strcpy、strcat、strcmp、strchr
C语言常用字符串函数,求串长strlen(char *s).串复制strcpy(char *s1,char *s2).串连接strcat(char *s1,char *s2).串比较strcmp(ch ...
- C语言字符串库函数strlen、strcpy、strcat、strcmp、strstr使用详解及其实现
写在前面:现在在刷简单题的时候,老是遇到字符串操作的题,用c语言自己实现很麻烦,其实c语言也有很多对字符串操作很方便的库函数.这个博客写来一是为了巩固自己一下自己学的知识,二也可以方便大家查询. 一. ...
- (C语言)常用的字符串函数介绍(strcpy,strncpy,strcat,strncat,strcmp,strncmp,strchar,strlen)非常详细
理解 strcpy,strncpy,strcat,strncat,strcmp,strncmp,strchar,strlen这些函数,可以帮助我们更好的对字符串进行操作,做到玩转字符串. 目录 1.s ...
- 【C语言】字符串库函数的解读和模拟实现第一弹(strlen、strcpy、strcat、strcmp、strncpy、strncat 及 strncmp)
目录 一. strlen函数 1.1 strlen函数实现的功能及函数原型 1.1.1 strlen函数实现的功能 1.1.2 strlen的函数原型 1.1.3 strlen实现功能的更进一步解读 ...
- C语言字符串库函数详解模拟实现(strlen、strcpy、strcat、strcmp)+字符操作函数+字符转换函数
字符串库函数详解 一.无字符串长度限制的字符串函数 1. strlen 计算字符串长度函数 2. strcpy 字符串拷贝函数 3. strcat 字符串追加函数 4. strcmp 字符串比较函数 ...
- 【C】模拟实现strlen,strcpy,strcat,strcmp,strncpy,syrcat,strnact,strncmp,strstr等字符串函数
目录 字符串函数模拟实现 1.strlen模拟实现 2.strcpy模拟实现 3.strncpy模拟实现 4.strcat模拟实现 5.strncat模拟实现 6.strcmp模拟实现 7.strnc ...
- 字符串库函数(1)Strlen,strcpy,strcat,strcmp
C语言没有字符串类型.字符串通常放在常量字符串或字符数组中(字符串常量适用于不做修改的字符串函数. 结束标志为'\0' 运行时一直到 '\0'时才结束,所以运行起来不是太安全 strlen 计算字符串 ...
- 编写一个C程序,实现以下功能:用一个函数实现两个字符串的比较,即自己写一个strcmp函数,函数原型为:int strcmp(char *p1,char *p2);设p1指向字符串s
题目描述: 编写一个C程序,实现以下功能: 用一个函数实现两个字符串的比较,即自己写一个strcmp函数,函数原型为: int strcmp(char *p1,char *p2); 设p1指向字符串s ...
- 写一函数,实现两个字符串的比较。即自己写一个strcmp函数,函数原型为int strcmp(char * p1 ,char * p2); 设p1指向字符串s1, p2指向字符串s2。要求当s1=s2
写一函数,实现两个字符串的比较.即自己写一个strcmp函数,函数原型为int strcmp(char * p1 ,char * p2); 设p1指向字符串s1, p2指向字符串s2.要求当s1=s2 ...
最新文章
- 定义主程序matlab,MATLAB 主程序和子程序之间的问题 子程序出错
- 08-图7 公路村村通
- 【以太坊】ubuntu安装以太坊ethereum的测试网络ropsten-net以及雷电网络raiden-network环境...
- idea的debug调试
- ios 侧滑返回停顿_iOS push侧滑返回功能实现方法
- 初识机器学习——吴恩达《Machine Learning》学习笔记(八)
- SPSS的数据T检验
- 使用 Cilium 增强 Kubernetes 网络安全
- java输出结果校验_2. Bean Validation声明式校验方法的参数、返回值
- 软考之网络管理员(包含2004-2018历年真题详解+课本教材讲义+视频教程)
- java实现签名和解签
- win10没有android驱动安装,win10系统安装adb驱动的详细步骤
- 车牌OCR识别SDK
- MATLAB常见语法错误
- ae合成设置快捷键_AE中常用的快捷键,你了解多少?(五)
- CMM(Capability Maturity Model) 能力成熟度模型
- “奋斗者”号下潜10909米:我们为什么要做深海探索?
- c语言手写平衡二叉树非递归实现
- nextvlad:一个用于大规模视频分类的聚集帧级特征的有效神经网络 NeXtVLAD: An Efficient Neural Network toAggregate Frame-level Fea
- python查找公共前缀_Python练习【3】【罗马数字转换/查找公共前缀】