当前位置: 首页 > news >正文

C语言常用的字符串函数

一、目的

   介绍四个常用的字符串函数。

 

 

二、字符串函数需要的库

#include<string.h>

 

 

三、主要函数

 

  (一)求字符串的长度

 1、函数的语法格式

size_t   strlen(const char*  p)

 参数说明:

    cons char* p  :接收一个char类型的数组或者字符变量;

 返回值:

    整数: 参数代表的字符串序列的长度(是拥有的字节长度);

 

 

2、使用案例

#include<stdio.h>

#include<string.h>

int main(){
    char n[50] = {"abc\0"};

 

    // 打印长度
    printf("长度:%d \n", strlen(n));
    return 0;
}

 结果:

长度:3

 

 

(二)连接函数

  把两个字符串连接起来。

 

  1、函数语法

char *  strcat(char * dest,   const char * src);

 参数说明:

     char* dest     : 存放最终结果的数组或者字符串空间位置

     char* src   :  存放需要连接的字符串的数组或者字符串空间指针

 

返回值:

    char*类型:  返回和dest一样的地址

 

通俗解释:把src位置的字符串接在dest位置的字符串的后面;dest需要空间足够;

 

 

  2、使用案例

#include<stdio.h>

#include<string.h>

int main(){
    // 存放连接后的结果 
    char des[15] = {"hello "};
    
    // 需要连接的字符串
    char src[7] = "world!\0";
     

   // 开始连接
    char* result_p = strcat(des, src);
    
    printf("des的内容:%s \n", des);
    printf("src数组的内容: %s \n", src);
    printf("result_p的内容:%s \n", result_p);


    return 0;

结果:

des的内容:hello world!
src数组的内容: world!
result_p的内容:hello world!

 

 

(三)复制函数

    把一个空间的字符串复制一份到另一个空间里。

  1、函数语法

char*  strcpy(char *  dest,  const char*  src);

 参数说明:

     char* dest     : 存放复制后的结果的数组或者字符串空间指针

     char* src   :  存放目标复制字符串的字符串的数组或者字符串空间指针

 

  返回值:

     char*类型:  返回和dest一样的地址

 

 

通俗解释:把src位置的内容复制一份给dest位置的空间;

 

  2、案例
 

#include<stdio.h>

#include<string.h>

 

int main(){
    // 存放复制结果
    char dest[50];

 

    // 存放复制的目标字符串
    char src[10] = "abc\0";

 

    // 开始复制
    char* p = strcpy(dest, src);


    printf("des的内容:%s \n", dest);
    printf("src数组的内容: %s \n", src);
    printf("p指针指向的值:%s \n", p);
    
    return 0;
}

结果:
 

des的内容:abc
src数组的内容: abc
p指针指向的值:abc

 

 

 (四)比较函数

    比较两个字符串是否相等;

  1、函数语法

int  strcmp(const char* str1,  const char*   str2)

 参数说明:

      const char*  str1    :参与比较的第一个字符串的存放指针

      const char*  str2    :参与比较的第二个字符串的存放指针

 

 

  返回值:

      0    :如果两个字符串相等;

      -1   : 如果str1小于str2;

      1    : 如果str1大于str2;

 

  注意:是按照ASCII编码的顺序比较,靠后面的比前面的字符大;

 

 

  2、使用案例

#include<stdio.h>

#include<string.h>

 

int main(){

    // 存放第1个字符串

    char str1[10] = {"abc"};

    // 存放第2个字符串
    char str2[10] = {"abcd"};
    
    printf("比较结果:%d \n", strcmp(str1, str2));


    return 0;
}

 

 结果:

比较结果:0

 如果是"abcd"和"abc"比较,结果是1。

 如果是"abce"和"abcd"比较,结果是1。

 

 

 

 

 


http://www.mrgr.cn/news/96688.html

相关文章:

  • 06-02-自考数据结构(20331)- 查找技术-动态查找知识点
  • 蓝桥杯 刷题对应的题解
  • Java基础 3.31
  • 【Feign】⭐️使用 openFeign 时传递 MultipartFile 类型的参数参考
  • SpringBoot详细教程(持续更新中...)
  • HCIP(RSTP+MSTP)
  • 记忆学习用内容
  • Sentinel[超详细讲解]-4
  • Axure疑难杂症:完美解决文本框读取、赋值、计数(玩转文本框)
  • 安卓一些接口使用
  • python文件的基本操作和文件读写
  • 实现在Unity3D中仿真汽车,而且还能使用ros2控制
  • Docker部署sprintboot后端项目
  • 【Golang】泛型与类型约束
  • 【第十三届“泰迪杯”数据挖掘挑战赛】【2025泰迪杯】【思路篇】A题解题全流程(持续更新)
  • 浏览器 ➔ 服务器or服务器 ➔ 浏览器:
  • linux进程信号 ─── linux第27课
  • Dubbo分布式框架学习(1)
  • (二)机器学习---常见任务及算法概述
  • jdk21使用Vosk实现语音文字转换,免费的语音识别