目录:

  • 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函数相关推荐

  1. C和指针之字符串之strlen、strcpy、 strcat、strcmp使用总结

    1.常见字符串相关操作 我们知道有strlen. strcpy.strcat.strcmp.这样一一系列函数 2.实现Demo #include <stdio.h> #include &l ...

  2. C语言常用字符串函数strlen、strcpy、strcat、strcmp、strchr

    C语言常用字符串函数,求串长strlen(char *s).串复制strcpy(char *s1,char *s2).串连接strcat(char *s1,char *s2).串比较strcmp(ch ...

  3. C语言字符串库函数strlen、strcpy、strcat、strcmp、strstr使用详解及其实现

    写在前面:现在在刷简单题的时候,老是遇到字符串操作的题,用c语言自己实现很麻烦,其实c语言也有很多对字符串操作很方便的库函数.这个博客写来一是为了巩固自己一下自己学的知识,二也可以方便大家查询. 一. ...

  4. (C语言)常用的字符串函数介绍(strcpy,strncpy,strcat,strncat,strcmp,strncmp,strchar,strlen)非常详细

    理解 strcpy,strncpy,strcat,strncat,strcmp,strncmp,strchar,strlen这些函数,可以帮助我们更好的对字符串进行操作,做到玩转字符串. 目录 1.s ...

  5. 【C语言】字符串库函数的解读和模拟实现第一弹(strlen、strcpy、strcat、strcmp、strncpy、strncat 及 strncmp)

    目录 一. strlen函数 1.1 strlen函数实现的功能及函数原型 1.1.1 strlen函数实现的功能 1.1.2 strlen的函数原型 1.1.3 strlen实现功能的更进一步解读 ...

  6. C语言字符串库函数详解模拟实现(strlen、strcpy、strcat、strcmp)+字符操作函数+字符转换函数

    字符串库函数详解 一.无字符串长度限制的字符串函数 1. strlen 计算字符串长度函数 2. strcpy 字符串拷贝函数 3. strcat 字符串追加函数 4. strcmp 字符串比较函数 ...

  7. 【C】模拟实现strlen,strcpy,strcat,strcmp,strncpy,syrcat,strnact,strncmp,strstr等字符串函数

    目录 字符串函数模拟实现 1.strlen模拟实现 2.strcpy模拟实现 3.strncpy模拟实现 4.strcat模拟实现 5.strncat模拟实现 6.strcmp模拟实现 7.strnc ...

  8. 字符串库函数(1)Strlen,strcpy,strcat,strcmp

    C语言没有字符串类型.字符串通常放在常量字符串或字符数组中(字符串常量适用于不做修改的字符串函数. 结束标志为'\0' 运行时一直到 '\0'时才结束,所以运行起来不是太安全 strlen 计算字符串 ...

  9. 编写一个C程序,实现以下功能:用一个函数实现两个字符串的比较,即自己写一个strcmp函数,函数原型为:int strcmp(char *p1,char *p2);设p1指向字符串s

    题目描述: 编写一个C程序,实现以下功能: 用一个函数实现两个字符串的比较,即自己写一个strcmp函数,函数原型为: int strcmp(char *p1,char *p2); 设p1指向字符串s ...

  10. 写一函数,实现两个字符串的比较。即自己写一个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 ...

最新文章

  1. 定义主程序matlab,MATLAB 主程序和子程序之间的问题 子程序出错
  2. 08-图7 公路村村通
  3. 【以太坊】ubuntu安装以太坊ethereum的测试网络ropsten-net以及雷电网络raiden-network环境...
  4. idea的debug调试
  5. ios 侧滑返回停顿_iOS push侧滑返回功能实现方法
  6. 初识机器学习——吴恩达《Machine Learning》学习笔记(八)
  7. SPSS的数据T检验
  8. 使用 Cilium 增强 Kubernetes 网络安全
  9. java输出结果校验_2. Bean Validation声明式校验方法的参数、返回值
  10. 软考之网络管理员(包含2004-2018历年真题详解+课本教材讲义+视频教程)
  11. java实现签名和解签
  12. win10没有android驱动安装,win10系统安装adb驱动的详细步骤
  13. 车牌OCR识别SDK
  14. MATLAB常见语法错误
  15. ae合成设置快捷键_AE中常用的快捷键,你了解多少?(五)
  16. CMM(Capability Maturity Model) 能力成熟度模型
  17. “奋斗者”号下潜10909米:我们为什么要做深海探索?
  18. c语言手写平衡二叉树非递归实现
  19. nextvlad:一个用于大规模视频分类的聚集帧级特征的有效神经网络 NeXtVLAD: An Efficient Neural Network toAggregate Frame-level Fea
  20. python查找公共前缀_Python练习【3】【罗马数字转换/查找公共前缀】

热门文章

  1. NAIROBI,KENYA_GWG3
  2. 等比数列和 详细证明过程
  3. Unable to build Hibernate SessionFactory
  4. bootstrap必填红心_bootstrap插件bootstrapValidator常用验证规则总结
  5. 2020 超分辨率技术发展趋势
  6. 房产投资的策略,选择、努力和能力,股市、房市
  7. 新宝线上配资 许多个股都能走出独立行情
  8. 怎样掌握在和客户沟通中的小技巧
  9. 重新认识linux应用程序运行原理
  10. Java核心技术卷一学习笔记1