当前位置:网站首页>C language STR function
C language STR function
2022-07-03 14:36:00 【roseisbule】
strlen:
Used to find the length of the string , Start with the first character , To '\0' end ,'\0' Not counting the total length .
Function implementation :
size_t my_strlen(const char* ptr)
{
assert(ptr);
const char* ptx = ptr;
while (*(++ptx));
return (size_t)(ptx - ptr);
}strcmp:
Used to compare two string sizes , Note that size does not refer to string length , It starts with the first character , Compare the size of characters . This function returns a int value , Different compilers , The value returned is different . But the positive and negative are consistent , When the first is greater than the second , Returns a positive value , Less than, it returns a negative value , Equal return 0.
Function implementation :
int my_strcmp(const char* str1,const char* str2)
{
assert(str1 && str2);
while((!(*str1 - *str2)) && ((*(str1++)) * (*(str2++))));
return (int)(*str1 - *str2);
}strcpy:
Used to copy strings .
Function implementation :
char* my_strcpy(char* dest,const char* source)
{
assert(dest && source);
char* result = dest;
while (*(dest++) = *(source++));
return result;
}strcat:
Used to append a string to the end of the target string .
Function implementation :
char* my_strcat(char* a, const char* b)
{
assert(a && b);
char* tmp = a;
while (*(++a));
while (*(a++) = *(b++));
*a = '\0';
return tmp;
}strstr:
Used to find another string within one string . This in KMP The algorithm is about .
Function implementation :
const char* my_strstr(const char* a, const char* b)//a Is a long string b Is a short string
{
char* cp = (char*)a;
char* s1;
char* s2;
if (!*b)
return a;
while (*cp)
{
s1 = cp;
s2 = (char*)b;
while (*s1 && *s2 && !(*s1 - *s2))
{
s1++;
s2++;
}
if (!*s2)
return cp;
cp++;
}
return NULL;
}atoi:
This function is very interesting , It will convert the numeric string of the string into int value .
Function implementation :
int my_atoi(const char* str)
{
assert(str);
int num = 0;
int result = 0;
const char* tmp = str;
while (*str && *str != '.')
{
num++;
str++;
}
while (num--)
{
result += (*tmp - '0') * (int)pow(10, num);
tmp++;
}
return result;
}strncpy,strncmp,strncat:
All three functions limit the number of characters , The function is the same .
Function implementation :
char* my_strncpy(char* dest, const char* sou, size_t num)
{
assert(dest && sou);
char* tmp = dest;
while ((num--) && (*(dest++) = *(sou++)));
return tmp;
}
char* my_strncat(char* a, const char* b, int n)
{
assert(a && b);
char* tmp = a;
while (*(++a));
while ((n--) && (*(a++) = *(b++)));
*a = '\0';
return tmp;
}
int my_strncmp(const char* str1, const char* str2,int n)
{
assert(str1 && str2);
while ((!(*str1 - *str2)) && ((*(str1++)) * (*(str2++))) && (n--));
return (int)(*str1 - *str2);
}边栏推荐
- 修改数据库中的记录为什么报这个错
- Zzuli:1046 product of odd numbers
- Why is this error reported when modifying records in the database
- SSH access control, blocking the IP when logging in repeatedly to prevent brute force cracking
- [qingniaochangping campus of Peking University] in the Internet industry, which positions are more popular as they get older?
- Detailed explanation of four modes of distributed transaction (Seata)
- Showmebug entered Tencent conference, opening the era of professional technical interview
- 7-17 crawling worms (break exercise)
- 7-18 finding the single root of polynomial by dichotomy
- Luogu p5018 [noip2018 popularization group] symmetric binary tree problem solution
猜你喜欢

【北大青鸟昌平校区】互联网行业中,哪些岗位越老越吃香?

Tonybot humanoid robot infrared remote control play 0630

使用并行可微模拟加速策略学习

556. The next larger element III

Doris学习笔记之数据表的创建

Accelerating strategy learning using parallel differentiable simulation

retrofit

Tonybot humanoid robot checks the port and corresponds to port 0701
![[qingniaochangping campus of Peking University] in the Internet industry, which positions are more popular as they get older?](/img/f6/fe61c84f289f0e74a45946dac687a6.jpg)
[qingniaochangping campus of Peking University] in the Internet industry, which positions are more popular as they get older?

论文分享:Generating Playful Palettes from Images
随机推荐
Pyqt interface production (login + jump page)
Get permissions dynamically
Sub-GHz无线解决方案Z-Wave 800 系列ZG23 soc和ZGM230S模块
【7.3】146. LRU caching mechanism
Use of constraintlayout
分布式事务(Seata) 四大模式详解
Sub GHz wireless solution Z-Wave 800 Series zg23 SOC and zgm230s modules
tonybot 人形机器人 定距移动 代码编写玩法
Ultra simple mobile map development
dllexport和dllimport
洛谷P5018 [NOIP2018 普及组] 对称二叉树 题解
SSH access control, blocking the IP when logging in repeatedly to prevent brute force cracking
Zzuli:1045 numerical statistics
How to query the baby category of tmall on Taobao
Frequently asked questions: PHP LDAP_ add(): Add: Undefined attribute type in
Adc128s022 ADC Verilog design and Implementation
LNMP环境mail函数不能发送邮件解决
Common commands for getting started with mongodb database
Statistical capital consonants
JVM garbage collector