每日一学21
本帖最后由 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:字符串复制函数的应用
#include<stdio.h>
#include<string.h>
int main()
{
char*s1="Hello World";
char*s2="Hello World";
char d1="***************";
char d2="***************";
strcpy(d1,s1); //调用字符串复制函数
printf("%s\n",d1);
strncpy(d2,s2,strlen(s2)); //调用字符串复制函数
printf("%s\n",d2);
getchar();
return 0;
}
例题分析:
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:字符串比较函数的应用
#include<stdio.h>
#include<string.h>
int main()
{
char*s1="Hello,Programmers!";
char*s2="Hello,programmers!";
int r=strcmp(s1,s2);
if(!r)
printf("s1 and s2 are identical");
else
if(r<0)
printf("s1 less than s2");
else
printf("s1 greater than s2");
getchar();
return 0;
}
例题分析:
当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:字符串查找函数的应用
#include<stdio.h>
#include<math.h>
int main()
{
char*s="Hello World";
char*ps="llo";
char*p;
p=strchr(s,'W');
if(p)
printf("%s\n",p);
else
printf("Not Found!\n");
p=strstr(s,ps);
if(p)
printf("%s\n",p);
else
printf("Not Found!\n");
getchar();
return 0;
}
例题分析:
strchr()函数查找字符'W'首次出现的位置,然后返回了"World"字符串;strstr()函数查找字符串"llo"首次出现的位置,然后返回了"llo World"字符串。
页:
[1]