首页 > 其他分享 >C语言第18天,字符串处理函数

C语言第18天,字符串处理函数

时间:2022-09-25 13:00:18浏览次数:56  
标签:函数 18 C语言 char printf 字符串 include 处理函数 size

字符串处理函数

与printf不同,这些函数不在之前熟悉的头文件stdio.h中。而是在字符串专用的头文件string.h中。

1.获取字符串长度strlen

strlen函数可以获取字符数组中的字符串长度。它从第一个字符开始计数,直到遇到'\0'为止,并返回累计的长度。

 

size_t strlen(constchar*str);

输入:一个指向字符串首地址的指针。

输出:size_t类型的整型,用于表示字符串长度。

 

使用const有两重意义:

1.保证函数内部不会修改指针所指向的字符。2.提示使用者,传给该函数的字符串不会被修改。

 

size_t并不是一个新的关键词,它是已有整型变量的别名。它有可能是unsigned int别名。也有可能是unsigned long或unsigned longlong的别名。取决于编译器怎样实现。

同时,sizeof关键词返回的结果也是size_t类型的

#include<stdio.h>

#include<string.h>

int main()

{char str[20]="Hello";

size_t size=sizeof(str);

printf("sizeof=%d\n",size);

 

size_t len=strlen(str);

printf("len=%d\n",len);

return 0;}

结果为sizeof=20

len=5

 

2.字符串拼接函数strcat

strcat函数原型如下:char*strcat(char*destination, const char*source);

输入:char*destination拼接目标字符串首地址

constchar*source拼接源目标首地址

输出:

char*destination拼接完成的目标字符串首地址

 

#include<stdio.h>

#include<string.h>

int main()

{char dest[9]="I Love";

char src[4]="You";

 

strcat(dest,src);//将后面的字符串拼接到前面

printf("%s\n",src);

printf("%s\n",dest);

return 0;}

 

结果为:You

I Love You

格外注意目标字符串后必须还有足够空间。如果目标字符串所在的数组仅有8个元素,这样拼接后,多出来的字符将造成数组越界。

dest[9]字符数组有9个元素,而拼接后ILoveYou\0也有9个字符。所以,这样是没问题的。

 

3.字符串复制函数strcpy

字符串复制函数strcpy,可以将源字符串的内容,复制到目标字符数组当中。

例如,源字符串为You,目标字符串为ILove\0。字符串复制函数会将从首元素开始覆盖目标字符串。使得目标字符串变为You\0。

#include<stdio.h>

#include<string.h>

int main()

{char dest[9]="ILove";

char src[4]="You";

 

strcpy(dest,src);

 

printf("%s\n",src);

printf("%s\n",dest);

return 0;}

 

结果为You

You

如同字符串拼接函数一样,字符串复制函数也需要目标字符串所在的数组拥有足够空间,才能正确完成复制。

 

4.字符串比较函数strcmp

字符串比较函数strcmp,用于比较两个字符串,如果两个字符串一致,则返回0。

#include<stdio.h>

#include<string.h>

int main()

{const char*str1="abcedfg";

constchar*str2="abcedfgh";

constchar*str3="abcedf";

 

//自己比自己,相等

int ret=strcmp(str1,str1);

printf("%d\n",ret);

 

//str1与str2比较,小比大

ret=strcmp(str1,str2);

printf("%d\n",ret);

 

//str1与str3比较,大比小

ret=strcmp(str1,str3);

printf("%d\n",ret);

return 0;}

结果为0

-1

1

标签:函数,18,C语言,char,printf,字符串,include,处理函数,size
From: https://www.cnblogs.com/mmwl/p/16727670.html

相关文章

  • 简单测试C语言<string.h>中strerror(int errornum)能输出什么
    使用一个简单程序来验证一下:#include<stdio.h>#include<string.h>intmain(intargc,char*argv[]){for(inti=-5;i<50;i++)printf("errno[%2......
  • 关于C语言的学习 01
    #include<stdio.h> /*include称为文件包含命令*/voidmain() //定义主函数{               //main函数体开始函数声明部分C语言的......
  • 什么是C语言
    什么是C语言?C语言是一门计算机语言计算机语言是什么呢?人和计算机交流的语言,如C/C++、Java、python 语言的发展?二进制语言(硬件-电-正电1/负电01010100101001100......
  • C语言:求质因数的函数
    #include<stdio.h>voidzys(inta){inti;printf("%d=",a);for(i=2;i<=a;i++){while(a%i==0){printf("%d",i);......
  • acwing 4618. 两个素数
    两个素数原题链接:https://www.acwing.com/problem/content/4621/思路本来我以为是要判断是不是素数但是y总后来讲的时候,我才发现题目保证一定有解,也就是说x一定会由两......
  • NOIP2018 day1 题解
    心血来潮看了看18年的联赛,感觉自己进步很大==T1对于一个“波”来说,显然需要的次数为最大的数(波峰),对于多个“波”,就每次记录一下从波底到波峰的高度差即可,这可以用差分简......
  • 海康摄像机使用GB28181接入SRS服务器的搭建步骤---封装docker镜像运行容器的方式,本篇
    使用第三方提供的镜像说明:这个是我在网上找的,没有实际验证及使用过,具体效果未知,看下文,我采用的是自己依据官方基础镜像进一步二次封装的镜像地址:https://hub.docker.com/......
  • 海康摄像机使用GB28181接入SRS服务器的搭建步骤---源码安装的方式
    下载代码地址:https://github.com/ossrs/srs-gb28181https://github.com/ossrs/srs-gb28181.git注意:使用的是含有gb28181的GitHub仓库地址。若是使用其他的仓库地址,比如......
  • C语言第17天,字符串与字符指针
    1.字符串常量不可修改#include<stdio.h>intmain(){char*pStr="HelloWorld\n";printf("%s",pStr);pStr[0]='h';//将H变为hprintf("%s",pStr);return0;}我们知道字......
  • Oracle体系结构_18c_Architecture
    有图有真相,一张图看清Oracle数据库体系结构。这个是18c版本。期待19c和21c的版本发布出来。=========================================================================......