目录
前言
c语言中对字符和字符串的处理很频繁,但是c语言中是没有字符串类型的,字符串通常放在字符数组和常量字符串中。想要合理使用字符串,免不了调用一些函数。那么今天,我们就来一起学习一下c语言中的字符和字符串函数吧。(注意:字符串常量适用于那些不对他进行修改的函数。)
一、strlen函数
1.简介
size_t strlen ( const char * str );
- 字符串已经 '\0' 作为结束标志,strlen函数返回的是在字符串中 '\0' 前面出现的字符个数(不包
- 含 '\0' )。
- 参数指向的字符串必须要以 '\0' 结束。
- 注意函数的返回值为size_t,是无符号的( 易错 )
#include <stdio.h>
int main()
{
const char* str1 = "abcdef";
const char* str2 = "bbb";
if (strlen(str2) - strlen(str1) > 0)
{
printf("大");
}
else
{
printf("小");
}
return 0;
}
上面代码输出结果为“大”,因为strlen返回的为无符号数,无符号数相减还是无符号数,总是大于零的。
2、模拟实现
2.1计数器方式
//计数器方式
int my_strlen(const char* str)
{
int count = 0;
while (*str)
{
count++;
str++;
}
return count;
}
2.2递归方式
//不能创建临时变量计数器
int my_strlen(const char* str)
{
if (*str == '\0')
return 0;
else
return 1 + my_strlen(str + 1);
}
2.3指针的方式
//指针-指针的方式
int my_strlen(char* s)
{
char* p = s;
while (*p != ‘\0’)
p++;
return p - s;
}
二、strcpy函数
1.简介
char* strcpy(char * destination, const char * source ); //字符串拷贝
2.模拟实现
//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++)) //虽然后置++的优先级比解引用高,但由于后置++的特性,
//虽然地址加了1,但解引用时依旧按加1前的地址操作
{
;
}
return ret;
}
三、strcat函数
1.简介
char * strcat ( char * destination, const char * source ); //字符串追

本文介绍了C语言中常用的字符串处理函数,如strlen、strcpy、strcat、strcmp等,详细讲解了它们的功能、用法及模拟实现。通过实例解析,帮助读者掌握字符串操作的核心技巧。
最低0.47元/天 解锁文章
1717

被折叠的 条评论
为什么被折叠?



