鱼C论坛

 找回密码
 立即注册
查看: 442|回复: 0

[学习笔记] 每日一学21

[复制链接]
发表于 2024-12-18 16:59:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 6bingame 于 2024-12-18 16:59 编辑

标准C库函数3

字符串复制函数


字符串复制函数用于把一个字符串复制到另一个字符中,形式如下

原型                                                            功能
char*strcpy(char*d,char*s)                              复制字符串s到字符串d,返回字符串
char*strncpy(char*d,char*s,int n)                      复制字符串s中至多n个字符到字符串d;如果s小于n个字符,用'\0'补上,返回字符串d
void*memcpy(void*d,void*s,int n)               从s复制n个字符到d,返回字符串d
void*memmove(void*d,void*s,int n)             和memcpy相同,即使d和s部分也运行


例题1:字符串复制函数的应用

  1. #include<stdio.h>

  2. #include<string.h>

  3. int main()
  4. {
  5.     char*s1="Hello World";

  6.     char*s2="Hello World";

  7.     char d1[20]="***************";

  8.     char d2[20]="***************";

  9.     strcpy(d1,s1);          //调用字符串复制函数

  10.     printf("%s\n",d1);

  11.     strncpy(d2,s2,strlen(s2));      //调用字符串复制函数

  12.     printf("%s\n",d2);

  13.     getchar();

  14.     return 0;
  15. }
复制代码


例题分析:
strcpy()函数中的s和d所指内存区域不可以重叠,且d必须有足够的空间来容纳s的字符串,最后返回指向d的指针。如果strncpy()函数中s的前n个字节不含NULL字符,则结果不会以NULL字符结束。如果s的长度小于n个字节,则以NULL填充d,直到复制完n个字节。s和d所指内存区域不可以重叠,且d必须有足够的空间来容纳s的字符串,最后返回指向d的指针。




字符串比较函数

字符串比较函数用于比较两个字符串的大小,以ASCII码为基础,形式如下

原型                                                        功能
int strcmp(char*d,char*s)                           比较字符串d与字符串s。如果a<s,返回-1;如果d==s,返回0;
int strnmp(char*d,char*s,int n)             比较字符串d中至多n个字符与字符串s。如果 d<s,返回-1;如果d==s,返回0;返回0;如果d>s,返回1
int memcmp(void*d,void*s,int n)             比较d的首先n个字符与s,和strcmp返回值相同


例题2:字符串比较函数的应用

  1. #include<stdio.h>

  2. #include<string.h>

  3. int main()
  4. {
  5.     char*s1="Hello,Programmers!";

  6.     char*s2="Hello,programmers!";

  7.     int r=strcmp(s1,s2);

  8.     if(!r)

  9.         printf("s1 and s2 are identical");

  10.     else

  11.         if(r<0)

  12.         printf("s1 less than s2");

  13.     else

  14.         printf("s1 greater than s2");

  15.     getchar();

  16.     return 0;

  17. }
复制代码


例题分析:
当s1<s2时,返回值=-1;当s1=s2时,返回值=0;当s1>s2时,返回值=1




字符串查找函数

字符串查找函数用于在一个字符串中查找字符串出现的位置,形式如下表所示

原型                                                        功能
char*strchr(char*d,char c)                          返回一个指向字符串d中字符c第1次出现的指针;或者如果没有找到c,则返回指向NULL的指针
char*strst(char*d,char*s)                           返回一个指向字符串d中字符s第1次出现的指针;或者如果没有找到s,则返回指向NULL的指针
void*memchr(void*d,char c,int n)            返回一个指向被d所指向的n个字符中c第1次出现的指针;或者如果没有找到c,则返回指向NULL的指针

例题3:字符串查找函数的应用

  1. #include<stdio.h>

  2. #include<math.h>

  3. int main()
  4. {
  5.     char*s="Hello World";

  6.     char*ps="llo";

  7.     char*p;

  8.     p=strchr(s,'W');

  9.     if(p)

  10.         printf("%s\n",p);

  11.     else

  12.         printf("Not Found!\n");

  13.     p=strstr(s,ps);

  14.     if(p)

  15.         printf("%s\n",p);

  16.     else

  17.         printf("Not Found!\n");

  18.     getchar();

  19.     return 0;
  20. }
复制代码


例题分析:
strchr()函数查找字符'W'首次出现的位置,然后返回了"World"字符串;strstr()函数查找字符串"llo"首次出现的位置,然后返回了"llo World"字符串。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-7 07:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表