当前位置:网站首页>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:1054 monkeys eat peaches
- How Facebook moves instagram from AWS to its own server
- Stop asking yourself if you are suitable for software testing
- 关于敏捷的一些概念
- 7-1 positive integer a+b (15 points)
- 表单文本框的使用(一) 选择文本
- 556. 下一个更大元素 III : 简单构造模拟题
- 分布式事务(Seata) 四大模式详解
- 洛谷P4047 [JSOI2010]部落划分 题解
- Get permissions dynamically
猜你喜欢

dllexport和dllimport

Dllexport and dllimport

Niuke: crossing the river

tonybot 人形机器人 定距移动 代码编写玩法

Programming language: the essence of type system

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

天谋科技 Timecho 完成近亿元人民币天使轮融资,打造工业物联网原生时序数据库

Tailing rushes to the scientific and Technological Innovation Board: it plans to raise 1.3 billion, and Xiaomi Changjiang is the shareholder

To improve efficiency or increase costs, how should developers understand pair programming?

Paper sharing: generating playful palettes from images
随机推荐
Zzuli:1049 square sum and cubic sum
Ultra simple mobile map development
【北大青鸟昌平校区】互联网行业中,哪些岗位越老越吃香?
J-luggage lock of ICPC Shenyang station in 2021 regional games (simple code)
ShowMeBug入驻腾讯会议,开启专业级技术面试时代
Doris学习笔记之数据表的创建
Special research report on the market of lithium battery electrolyte industry in China (2022 Edition)
Convert string to decimal integer
Recent learning summary
Output student grades
7-17 crawling worms (break exercise)
Detailed explanation of four modes of distributed transaction (Seata)
Optical cat super account password and broadband account password acquisition
Table of mathematical constants by q779
Although not necessarily the best, it must be the hardest!
7-20 print 99 formula table (format output)
SSH access control, blocking the IP when logging in repeatedly to prevent brute force cracking
Tonybot humanoid robot starts for the first time 0630
JVM garbage collector
分布式事务(Seata) 四大模式详解