当前位置:网站首页>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);
}
边栏推荐
- Output student grades
- Accelerating strategy learning using parallel differentiable simulation
- Address book sorting
- Tonybot humanoid robot checks the port and corresponds to port 0701
- X86 assembly language - Notes from real mode to protected mode
- Jiuyi cloud black free encryption free version source code
- 7-2 and then what time (15 minutes)
- 一文了解微分段应用场景与实现机制
- Zzuli:1047 logarithmic table
- Zhonggan micro sprint technology innovation board: annual revenue of 240million, net loss of 17.82 million, proposed to raise 600million
猜你喜欢
随机推荐
Preliminary summary of structure
Bibit pharmaceutical rushed to the scientific innovation board: annual revenue of 970000, loss of 137million, proposed to raise 2billion
tonybot 人形机器人 定距移动 代码编写玩法
Some concepts about agile
Dllexport et dllimport
7-16 find the set of integers that meet the given conditions
Analysis of gene family characteristics - chromosome location analysis
Zzuli:1057 prime number determination
[qingniaochangping campus of Peking University] in the Internet industry, which positions are more popular as they get older?
分布式事务(Seata) 四大模式详解
数学常数表 by q779
China PETG market forecast and Strategic Research Report (2022 Edition)
NFT new opportunity, multimedia NFT aggregation platform okaleido will be launched soon
pyQt界面制作(登录+跳转页面)
Zzuli:1045 numerical statistics
Zzuli:1049 square sum and cubic sum
Facebook 如何将 Instagram 从 AWS 搬到自己的服务器
1017 a divided by B (20 points)
Showmebug entered Tencent conference, opening the era of professional technical interview
Jiuyi cloud black free encryption free version source code