c语言中空格字符怎么表示_C语言中常用的字符串操作函数

fab639d6469769f7598d3b21a430a957.png

作者:陈太浪 

出处:https://home.cnblogs.com/u/TomHe789/

C语言中提供了许多的字符串操作函数,常见的字符串操作函数有以下几种:  

1、求字符串长度的函数

原型函数:strlen(字符串1名称, 字符串2名称);

实现原理:将字符串名称传入该函数,该函数会遍历该字符串,最后将长度返回给我们,注意返回的长度不包括'\0';

2、字符串拷贝函数

原型函数:strcpy(字符串);

实现原理:该函数需要传入两个字符串名称,所谓拷贝其实是指将字符串2所包含的元素,复制到字符串1中,注意

这里的复制其实也包含覆盖的意思,字符串1中原来的元素会被覆盖掉;

3、字符串拼接函数

原型函数:strcat(字符串1名称, 字符串2名称);

实现原理:该函数也需要传入两个字符串名称,所谓拼接其实是指将字符串2所包含的元素,拼接到字符串1的后面;

4、字符串比较函数

原型函数:strcmp(字符串1名称, 字符串2名称);

实现原理:该函数也是需要传入两个字符串的名称的,然后同时遍历两个字符串,每次都分别从这两个字符串中取出一个字符,

再比较这两个字符的ASCII码,如果从字符串1中取出的字符的ASCII码比从字符串2中取出的ASCII码要大,那么该函数就会返回 1,

如果小的话该函数就会返回 -1,如果取到了两个字符串的最后一个字符,每一个字符的ASCII码都是相等的,那么该函数就会返回 0。

了解完这几个字符串操作函数的原理之后,我们就可以不使用C语言提供的库函数,自己自定义这几个函数了;

具体代码如下:

#include //函数声明int myStrlen(char str[]);void muStrcpy(char str1[], char str2[]);void myStrcat(char str1[], char str2[]);int myStrcmp(char str1[], char str2[]);int main(){    char str1[] = "TomHe789";    char str2[] = "TomHe";    char str3[] = "789";    char str4[] = "abcde";    char str5[] = "abcde";    //打印str1的长度    printf("str1Len = %d\n", myStrlen(str1));   //8    //将str2拷贝到str1中    muStrcpy(str1, str2);                           printf("str1 = %s\n",str1);                 //TomHe    //将str3拼接到str2后面    myStrcat(str2, str3);                           printf("str2 = %s\n",str2);                 //TomHe789    //打印出 myStrcmp(str4, str5)的结果    printf("res = %d", myStrcmp(str4, str5));   //0    return 0;}//自定义字符串长度函数int myStrlen(char str[]){    int len = 0;    while (str[len] != '\0')    {        len++;    }    return len;    }//自定义字符串拷贝函数void muStrcpy(char str1[], char str2[]){    int len = 0;    while (str2[len] != '\0' || str1[len] != '\0')    {        str1[len] = str2[len];        len++;    }    str1[len] = '\0';    }//自定义字符串拼接函数void myStrcat(char str1[], char str2[]){    int len = 0;    int len1 = 0;    while (str1[len] != '\0')    {        len++;    }    while (str2[len1] != '\0')    {        str1[len] = str2[len1];        len++;        len1++;    }    str1[len] = '\0';}//自定义字符串比较函数int myStrcmp(char str1[], char str2[]){    int len = 0;    while (str1[len]!='\0' || str2[len]!='\0')    {        if(str1[len] > str2[len])            return 1;        else if(str1[len] < str2[len])            return -1;        else            len++;    }    return 0;}

运行结果

e3a754dd2320ffe07a54374b21b86ad4.png

48a5ce6d14555ff6c58245688130bf4d.png

往期回顾

  • 哪些5G芯片和5G模组已经问世?| 截至2020年Q1

  • NB-IoT要不要走运营商平台?

  • 以疫情的名义对你"开枪",你还不考虑还手吗?

  • 解析华为HMS的发布到底为我们带来了什么影响?

  • 如何实现室内精准定位?——UWB定位

  • WiFi 6到来,WiFi也有更新换代?

  • 物联网IoT终端设备如何选择接入协议
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值