實驗指南 這篇博客旨在實驗客戶端和服務端相互發送消息的實驗,實驗成功的現象為,客戶端和服務端的兩個視窗,即client和server左上角均被打上文字,因為客戶端是沒有給圖片附上文字的功能的,十分感謝柒上夏OPO大佬提供源碼上的支持 客戶端代碼 import numpy as np import c ...
一、strcmp模擬實現
- 1.strcmp原理
- 2.基於其原理進行模擬實現
二、strcat模擬實現
- 1.strcat原理
- 2.基於其原理進行模擬實現
三、strstr模擬實現
- 1.strstr原理
- 2.基於其原理進行模擬實現
一、1. strcmp原理
strcmp進行字元串比較,將兩個字元串進行比較,當src大於dest時,返回大於0的數,等於時返回0,小於時返回小於0的數.
效果如下:
ps:在vs的編譯器下,strcmp的比較方式和輸出結果為:
當src大於dest時,返回1,等於時返回0,小於時-1.
2.模擬實現strcmp
int my_strcmp(char* src,char* dest)
{
while(*src==*dest){
if(*src=='\0'){
return 0; }
src++;
dest++;
}
return (*src-*dest);
}
ps:比較的是兩個相同長度的字元串
vs的庫函數實現的strcmp如下:
二、1.strcat原理
將src所指向的字元串追加到dest所指向的字元串末尾。
效果如下:
2.模擬實現strcat
char* my_strcat(char* dest,char* src)
{
char* bgn=arr1;
while(*dest)
{dest++;}
while((*dest=*src)!='\0')
{dest++;
src++; }
return bgn;
}
庫函數實現的strcat:
三、1.strstr的原理
strstr原理:搜索字元串haystack是否為needle的子字元串。
效果如下:
2.模擬實現strstr
char* my_strstr(const char* hacky,const char* needle){
const char* str1=NULL;
const char* str2=NULL;
const char* cur=hacky;
if(*needle=='\0')
{return hacky;}
while(*cur)
{ str1=cur;
str2=needle;
while(*str2&&*str1&&*str1==*str2)
{str1++;
str2++;}
if(str2=='\0')
{return cur;}
cur++;
}
return 0;
}