C中 strcmp() 与 strcpy()

允我心安 提交于 2019-12-25 22:48:31

 头文件: #include <string.h>

一、strcmp() 函数

函数原型:

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

参数

  • str1 -- 要进行比较的第一个字符串。
  • str2 -- 要进行比较的第二个字符串。

返回值

该函数返回值如下:

  • 如果返回值 < 0,则表示 str1 小于 str2。
  • 如果返回值 > 0,则表示 str2 小于 str1。
  • 如果返回值 = 0,则表示 str1 等于 str2。

即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。如:

1."A"<"B" 2."A"<"AB" 3."Apple"<"Banana" 4."A"<"a" 5."compare"<"computer"

 

二、strcpy() 函数

函数原型:

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

功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间;

说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。

返回指向dest的指针。

//C语言标准库函数strcpy的一种典型的工业级的最简实现。
 
 
//返回值:目标串的地址。
 
 
//对于出现异常的情况ANSI-C99标准并未定义,故由实现者决定返回值,通常为NULL。
 
 
//参数:des为目标字符串,source为原字符串。
 
 
char* strcpy(char* des,const char* source)
 
 
{
 
 char* r=des;
   
   
assert((des != NULL) && (source != NULL));
 
 
while((*r++ = *source++)!='\0');
 
 
return des;
 
}
 
 
 
//while((*des++=*source++));的解释:赋值表达式返回左操作数,所以在赋值'\0'后,循环停止。

示例代码:

#include <stdio.h>
#include <string.h>

int main()
{
	char src[40];
	char dest[100];

	memset(dest, '\0', sizeof(dest));
	strcpy(src, "This is runoob.com");
	strcpy(dest, src);

	printf("最终的目标字符串: %s\n", dest);

	return(0);
}

运行结果:

 

 

参考:

strcpy

strcmp

C 库函数 - strcpy()

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!