C语言--strcmp函数,strcat函数,strcpy函数详解及实现

这篇具有很好参考价值的文章主要介绍了C语言--strcmp函数,strcat函数,strcpy函数详解及实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.strcmp函数

1.1函数介绍

1.2函数使用

1.2.1代码

1.2.2运行结果

1.3模拟实现strcmp

1.3.1实现思路

1.3.2代码

 1.3.3运行结果

2.strcat函数

2.1函数介绍

2.2函数使用 

2.2.1代码

2.2.2运行结果

2.3模拟实现strcat

2.3.1实现思路

2.3.2代码

 2.3.3运行结果

3.strcpy函数

3.1函数介绍

3.2函数使用

3.2.1代码 

3.2.2运行结果

3.3函数模拟实现strcpy

3.3.1实现思路

3.3.2代码

 3.3.3运行结果


1.strcmp函数

1.1函数介绍

strcmp函数是用来比较两个字符串大小的函数,需要引用头文件<string.h>。

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

strcmp比较两个字符串的大小,一个字符一个字符比较,按ASCLL码比较
标准规定:
第一个字符串大于第二个字符串,则返回大于0的数字
第一个字符串等于第二个字符串,则返回0
第一个字符串小于第二个字符串,则返回小于0的数字

1.2函数使用

1.2.1代码

#include<stdio.h>
#include<string.h>
int main()
{
	char* p1 = "abcdefgh";
	char* p2 = "abcdefgh";
	char* p3 = "abcde";
	char* p4 = "bcdef";
	printf("%d\n", strcmp(p1, p2));
	printf("%d\n", strcmp(p1, p3));
	printf("%d\n", strcmp(p3, p4));
}

1.2.2运行结果

strcmp,C语言学习详解,c语言,开发语言

1.3模拟实现strcmp

1.3.1实现思路

1.函数所接收的值只用于比较,不能被修改,因此要对参数进行const修饰,由于传入参数都不能为空,因此可以加用断言。

 2. strcmp是比较字符串中对应位置上的字符大小(ASC II码值大小),如果相同,就比较下一对,直到不同或者都遇到'\0'。

3.若str1和str2解引用后不相等,则返回*str1-*str2。

1.3.2代码

#include<stdio.h>
#include<assert.h>
int my_strcmp(const char* str1, const char* str2)
{
	assert(str1 && str2);
	while (*str1 == *str2)
	{
		if (*str1 == '\0')
		{
			return 0;
		}
		str1++;
		str2++;
	}
	return(*str1 - *str2);
}
int main()
{
	char* p1 = "abcdefgh";
	char* p2 = "abcdefgh";
	char* p3 = "abcc";
	char* p4 = "bcde";
	printf("%d\n", my_strcmp(p1, p2));
	printf("%d\n", my_strcmp(p1, p3));
	printf("%d\n", my_strcmp(p3, p4));
}

 1.3.3运行结果

strcmp,C语言学习详解,c语言,开发语言

2.strcat函数

2.1函数介绍

strcat追加拷贝,追加到目标空间后面,目标空间必须足够大,能容纳下源字符串的内容。

char * strcat ( char * destination, const char * source );

2.2函数使用 

2.2.1代码

#include<stdio.h>
#include<string.h>
int main()
{
	char str1[20] = "yes or";
	const char* str2 = " on";
	strcat(str1, str2);
	printf("%s\n", str1);
	return 0;
}

2.2.2运行结果

strcmp,C语言学习详解,c语言,开发语言

2.3模拟实现strcat

2.3.1实现思路

1.目的在字符串dst的末尾接上src的开头。

2.因此首先让dst指向'\0',让src从'\0'开始赋值给dst

2.3.2代码

#include<stdio.h>
void MyStrcat(char* dst, const char* src)
{

	while (*dst != '\0')
	{
		++dst;
	}

	while (*dst = *src)
	{
		++dst;
		++src;
	}
	*dst = '\0';
}
int main()
{
	char p1[20] = "yes or";
	const char* p2 = " no";
	MyStrcat(p1, p2);
	printf("%s\n", p1);
	return 0;
}

 2.3.3运行结果

strcmp,C语言学习详解,c语言,开发语言

3.strcpy函数

3.1函数介绍

strcpy是覆盖拷贝,将source全覆盖拷贝到destination,会把’\0’也拷过去,且必须考虑destination的空间够不够(destination的空间必须>=source的空间)

char * strcpy ( char * destination, const char * source );

3.2函数使用

3.2.1代码 

#include<stdio.h>
#include<string.h>
int main()
{
	char p1[] = "yes or no";
	char* p2 = "yes";
	printf("%s\n", p1);
	strcpy(p1, p2);
	printf("%s\n", p1);
	return 0;
}

3.2.2运行结果

strcmp,C语言学习详解,c语言,开发语言

3.3函数模拟实现strcpy

3.3.1实现思路

我们目的是将source覆盖拷贝到destination,那么我们可以从头开始将source的值,赋给destination,赋值结束后只需要给destination后一个位置加上'\0'就完成了。

3.3.2代码

#include<stdio.h>
void my_strcpy(char* dst, const char* src)
{
	while (*src)
	{
		*dst = *src;
		++src;
		++dst;
	}
	*dst = '\0';
}
int main()
{
	char p1[] = "yes or no";
	const char* p2 = "yes";
	printf("%s\n", p1);
	my_strcpy(p1, p2);
	printf("%s\n", p1);
	return 0;
}

 3.3.3运行结果

strcmp,C语言学习详解,c语言,开发语言文章来源地址https://www.toymoban.com/news/detail-790980.html

到了这里,关于C语言--strcmp函数,strcat函数,strcpy函数详解及实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言strcat函数再学习

    之前学习了strcat函数;下面继续学习此函数; 它的功能描述是, 功能 把src所指向的字符串(包括“\\0”)复制到dest所指向的字符串后面(删除*dest原来末尾的“\\0”)。要保证*dest足够长,以容纳被复制进来的*src。*src中原有的字符不变。返回指向dest的指针。 说明 src和dest所

    2024年02月05日
    浏览(37)
  • 提升内功之模拟实现库函数strlen/strncpy/strcmp/strcat/strstr/memcpy/memmove

    strlen函数的作用就是求字符串的首元素开始往后计算字符串的长度,直到’\\0‘,但不会把\\0的长度计算进去 strncpy的作用就是从source指向的字符串复制num个字节的内容到destination指向的字符串去 如果source的长度小于num,则填充0 注意source和destination的内容在空间上不要重叠,如

    2024年02月16日
    浏览(31)
  • 【C语言】strcpy函数的超细节详解(什么是strcpy,如何模拟实现strcpy?)

    目录 一、观察strcpy()库函数的功能与实现  二、模仿实现strcpy()函数  🔍优化代码  🔍assert断言拦截  🔍const修饰常量指针  🔍返回值的加入 三、共勉 首先我们先来观察一下库函数 strcpy 去实现字符串拷贝的功能 清楚了这个库函数的功能之后,我们在来详细的解析一下:

    2024年04月08日
    浏览(36)
  • 【C语言】strcpy()函数(字符串拷贝函数详解)

    🦄 个人主页 :修修修也 🎏 所属专栏 :C语言 ⚙️ 操作环境 : Visual Studio 2022 目录  一.strcpy()函数简介 1.函数功能 2.函数参数 1.char * destination 2.const char * source 3.函数返回值 4.函数头文件 二.strcpy()函数的具体使用 1.使用strcpy()函数完成字符数组间的字符拷贝 2.使用strcpy()函数完成

    2024年02月03日
    浏览(34)
  • C语言--模拟实现库函数strcpy

    本章内容我们将通过相关函数来实现库函数中的strcpy。 C语言 strcpy()函数用于对字符串进行复制(拷贝)。需要的头文件为 string.h 。原理如下 其中的strSource为 源字符串 ,strDestination为 目的字符串 ,strcpy的作用就是将 strSource 指向的字符串复制到 strDestination。 我们举个例子 打

    2024年01月19日
    浏览(28)
  • C语言-----函数功能实现---strcpy&&strlen

    1 .函数功能参数介绍 该函数的功能就是把一个字符串复制到另外的一个数组,包括\\\'\\0\\\'; 2.首先我们要明确字符串的复制也是包括最后的\\0的; 跳出while循环之后就会把末尾的\\0实现复制; 3.继续优化---------------------------------------------- 我们阅读上面的资料就会发现strcpy的返回

    2024年02月20日
    浏览(26)
  • 【C语言】strcpy()函数

    文章目录 一、strcpy()函数的简介 二、strcpy()函数的具体使用 三、使用strcpy()函数的注意事项  strcpy()函数:是将一个字符串复制到另一块空间地址中 的函数,‘\\0’是停止拷贝的终止条件,同时也会将 \\\'\\0\\\' 也复制到目标空间。下面是库中的strcpy()函数声明: char* strcpy(char* des

    2024年02月03日
    浏览(28)
  • C语言-函数STRCPY

    char *strcpy(char *restrict dst, const char *restrict src); 把src的字符串拷贝到dst restrict表明src和dst不重叠(C99) 返回dst 为了能链起代码来 char dst = (char )malloc(strlen(src) + 1); strcpy(dst, src);

    2024年02月04日
    浏览(39)
  • C语言的strcpy()函数

    strcpy()函数的简介 strcpy()函数用于将一个字符串拷贝到另一个内存地址的函数,拷贝停止的条件是遇到\\\'\\0\\\',同时会将\\\'\\0\\\'一同拷贝到目标地址。下面是strcpy()函数的声明: 1. 函数的参数: char* destination---------目标字符串的首地址 const char* source------源地址:被复制的字符串的首

    2024年02月13日
    浏览(30)
  • C语言-指针进阶-qsort函数的学习与模拟实现(9.3)

    目录 思维导图: 回调函数 qsort函数介绍 模拟实现qsort 写在最后: 什么是回调函数? 回调函数是一个通过函数指针调用的函数。 将一个函数指针作为参数传递给一个函数,当这个指针被用来调用所指向函数时, 我们就将此称为回调函数。 在举例之前,我们先学习一个C语言

    2024年02月15日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包