绵阳网站建设100jv,怎么做互联网营销推广,网站信息建设,装修合同电子版各位少年#xff0c;大家好#xff0c;我是博主那一脸阳光#xff0c;今天给大家分享字符函数的使用与模拟实现。 前言#xff1a;如果你想使用一个锤子非常方便#xff0c;直接使用做好的就行#xff0c;但是锤子是怎么构成的#xff0c;你就不知所云了#xff0c;模拟…各位少年大家好我是博主那一脸阳光今天给大家分享字符函数的使用与模拟实现。 前言如果你想使用一个锤子非常方便直接使用做好的就行但是锤子是怎么构成的你就不知所云了模拟实现字符串有助于提高我们的编程的能力与使用
strlen的使⽤和模拟实现
strlen函数是用来计算字符串的长度的遇到斜杠0就停止计算机。 原型如下size_t strlen ( const char * str );
c
#includestdio.hint main(){if((int)strlen(abc)-(int)strlen(abcdef)0){printf(大于\n);}else{printf(小于等于\n);}
return 0;
}• 字符串以 ‘\0’ 作为结束标志strlen函数返回的是在字符串中 ‘\0’ 前⾯出现的字符个数不包含 ‘\0’ )。 • 参数指向的字符串必须要以 ‘\0’ 结束。 • 注意函数的返回值为size_t是⽆符号的 易错 • strlen的使⽤需要包含头⽂件 • 学会strlen函数的模拟实现
strlen的模拟实现
⽅式1
int my_strlen(const char * str)
{int count 0;assert(str);while(*str){count;str;}return count;
}⽅式2
//不能创建临时变量计数器
int my_strlen(const char * str)
{assert(str);if(*str \0)return 0;elsereturn 1my_strlen(str1);
}//指针-指针的⽅式
int my_strlen(char *s)
{assert(str);char *p s;while(*p ! ‘\0’ )p;return p-s;
}strcpy 的使⽤和模拟实现 char* strcpy(char * destination, const char * source );• Copies the C string pointed by source into the array pointed by destination, including the terminating null character (and stopping at that point). • 源字符串必须以 ‘\0’ 结束。 • 会将源字符串中的 ‘\0’ 拷⻉到⽬标空间。 • ⽬标空间必须⾜够⼤以确保能存放源字符串。 • ⽬标空间必须可修改。 • 学会模拟实现。
strcpy叫做字符串拷贝 把source内容拷贝进destination
#includestdio.h
int main()
{char arr1[20] xxxxxxxxxxxx;char arr2[] hello;strcpy(arr1, arr2);printf(%c\n, arr1);return 0;
}上面这段代码 中str1指向第一个字符x第二个arr指向h所以这段字符。 是把arr2拷进去arr1字符里头去。那原先的就被替换表但大家想想斜杠0在哪里呢
很显然0保存了下来但并不是斜杠0 因为斜杠0是字符串结束标志 所以斜杠0没了0保存了 但是当你打印这个字符的数组的时候不会打印出来 ### 模拟实现//1.参数顺序
//2.函数的功能停⽌条件
//3.assert
//4.const修饰指针
//5.函数返回值
//6.题⽬出⾃《⾼质量C/C编程》书籍最后的试题部分
char *my_strcpy(char *dest, const char*src)
{ char *ret dest;assert(dest ! NULL);assert(src ! NULL);while((*dest *src)){;}return ret;
}strcat 的使⽤和模拟实现
• Appends a copy of the source string to the destination string. The terminating null character in destination is overwritten by the first character of source, and a null-character is included at the end of the new string formed by the concatenation of both in destination. • 源字符串必须以 ‘\0’ 结束。 • ⽬标字符串中也得有 \0 否则没办法知道追加从哪⾥开始。 • ⽬标空间必须有⾜够的⼤能容纳下源字符串的内容。 • ⽬标空间必须可修改。 • 字符串⾃⼰给⾃⼰追加如何
#includestdio.h
int main()
{char arr1[20] { cb};char arr2[] abcdef;printf(%s\n, strcat(arr1, arr2));return 0;
}上面代码中我们把arr2和arr1拼接在一起使用就像拼图一样链接在一起的。
char *my_strcat(char *dest, const char*src)
{char *ret dest;assert(dest ! NULL);assert(src ! NULL);while(*dest){dest;}while((*dest *src)){;}return ret;
}上面我们模拟实现了stcat函数我们通过while循环找到斜杠然后斜杠0可以理解为0 下面代码通过循环把斜杠0的位置进行交换。
stcmp字符比较模拟实现
int strncmp ( const char * str1, const char * str2, size_t num );⽐较str1和str2的前num个字符如果相等就继续往后⽐较最多⽐较num个字⺟如果提前发现不⼀ 样就提前结束⼤的字符所在的字符串⼤于另外⼀个。如果num个字符都相等就是相等返回0
好先分享到这里祝大家新年快乐心想事成万事如意