C语言数组比较相等memcmp,C语言:模拟实现memcmp,试比较memcmp与strcmp,strncmp的区别...

模拟实现内存比较函数memcmp:

该函数与strcmp有相似之处,都可用于字符串比较是否相同,若相同,则返回0值。若前者大于后者,则返回大于0的整型值,否则返回小于0的整型值。

区别在于:

strcmp只能比较字符串,memcmp是内存比较函数,原则上是比较内存的,但其实真正实现时并不是所有都可以比较,例如float,但我们至少可以比较字符串以及int型。而对于strcmp,strncmp的比较:str1, str2 为需要比较的两个字符串,n为要比较的字符的数目,而函数strcmp()做不到,strcmp()可以比较全部字符串(因为它找字符串结束标志‘\0’)。

代码如下:

#define _crt_secure_no_warnings 1

#include

#include

#include

int my_memcmp(const void *p1, const void *p2, size_t count)

{

assert(p1);

assert(p2);

char *dest = (char *)p1;

char *src = (char *)p2;

while (count && *dest == *src)

{

count--;

dest++;

src++;

}

if (count == 0)

return 0;

else

return *dest - *src ;

}

int main()

{

/*int arr1[] = { 1, 3, 20, 5 }; //比较整型

int arr2[] = { 1, 3, 10, 7 };*/

char arr1[] = "hello"; //比较字符串

char arr2[] = "hello world";

int len = sizeof(arr1) / sizeof(arr1[0]);

int ret = my_memcmp(arr1, arr2, 12);

printf("%d", ret);

system("pause");

return 0;

}

Python中,可以使用多线程来模拟多个用户同时进行演唱会的行为。首先,需要导入threading模块和其他必要的模块。然后,定义一个全局变量TOTAL_TICKETS表示演唱会的总数量,以及一个全局变量remaining_tickets表示剩余门的数量。接下来,可以编写一个grab_ticket函数来模拟用户的过程。在该函数中,首先输出一条消息表示正在尝试获取门,并使用time.sleep函数来模拟网络请求的时间。然后,使用随机数来决定是否成功获取门。如果有成功,则输出相应的消息。如果成功获取门,并且剩余门数量大于0,则将剩余门数量减少1,并通知用户获取门成功。如果剩余门数量为0,则通知用户获取门失败。接下来,可以创建多个线程来模拟多个用户同时进行行为。最后,使用join函数等待所有线程完成,并输出一条消息表示所有用户的行为已经完成。这样就完成了Python演唱会的模拟。\[1\]\[2\] #### 引用[.reference_title] - *1* *2* [用Python写一个演唱会脚本](https://blog.youkuaiyun.com/weixin_48745280/article/details/131123319)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Python制作大麦网程序,看演唱会再也不怕了](https://blog.youkuaiyun.com/m0_74942241/article/details/129811523)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值