前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >我与C语言二周目邂逅vlog——5.字符函数和字符串函数

我与C语言二周目邂逅vlog——5.字符函数和字符串函数

作者头像
用户11286441
发布2024-09-23 19:02:46
940
发布2024-09-23 19:02:46
举报
文章被收录于专栏:学习

1.strlen的使⽤和模拟实现(获取长度函数)

1 size_t strlen ( const char * str );

字符串以 '\0' 作为结束标志,strlen函数返回的是在字符串中 '\0' 前⾯出现的字符个数(不包 含 '\0' )。 • 参数指向的字符串必须要以 '\0' 结束。 • 注意函数的返回值为 size_t,是⽆符号的( 易错 ) • strlen的使⽤需要包含头⽂件

1.1 strlen模拟实现

代码语言:javascript
复制
int my_strlen(const char * str)
{
 int count = 0;
 assert(str);
 while(*str)
 {
 count++;
 str++;
 }
 return count;
}

2.strcpy 的使⽤和模拟实现(交换函数)

char* strcpy(char * destination, const char * source );

• 源字符串必须以 '\0' 结束。 • 会将源字符串中的 '\0' 拷⻉到⽬标空间。 • ⽬标空间必须⾜够⼤,以确保能存放源字符串。 • ⽬标空间必须可修改。

2.1 strcpy模拟实现

代码语言:javascript
复制
char* my_strcpy(char *dest, const char*src)
{ 
 char *ret = dest;
 assert(dest != NULL);
 assert(src != NULL);
 
 while((*dest++ = *src++));
 return ret;
}

3.strcat 的使⽤和模拟实现 (连接函数,将一个字符串和另一个连接)

代码语言:javascript
复制
char * strcat ( char * destination, const char * source );

• 源字符串必须以 '\0' 结束。 • ⽬标字符串中也得有 \0 ,否则没办法知道追加从哪⾥开始。 • ⽬标空间必须有⾜够的⼤,能容纳下源字符串的内容。 • ⽬标空间必须可修改。

3.1 strcat模拟实现 

代码语言:javascript
复制
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;
}

4.strcmp 的使⽤和模拟实现 (比较函数)

代码语言:javascript
复制
int strcmp ( const char * str1, const char * str2 );

标准规定: ◦ 第⼀个字符串⼤于第⼆个字符串,则返回⼤于0的数字 ◦ 第⼀个字符串等于第⼆个字符串,则返回0 ◦ 第⼀个字符串⼩于第⼆个字符串,则返回⼩于0的数字 ◦ 那么如何判断两个字符串? ⽐较两个字符串中对应位置上字符ASCII码值的⼤⼩。

4.1strcmp模拟实现 

代码语言:javascript
复制
int my_strcmp (const char * str1, const char * str2)
{
 int ret = 0 ;
 assert(str1 != NULL);
 assert(str2 != NULL);
 while(*str1 == *str2)
 {
 if(*str1 == '\0')
 return 0;
 str1++;
 str2++;
 }
 return *str1-*str2;
}

5.strncpy 函数的使⽤ 

1 char * strncpy ( char * destination, const char * source, size_t num );

• 拷⻉num个字符从源字符串到⽬标空间。 • 如果源字符串的⻓度⼩于num,则拷⻉完源字符串之后,在⽬标的后边追加0,直到num个。

6. strncat 函数的使⽤

1 char * strncat ( char * destination, const char * source, size_t num );

• Appends the first num characters of source to destination, plus a terminating null-character. (将source指向字符串的前num个字符追加到destination指向的字符串末尾,再追加⼀个 \0 字 符)。 • If the length of the C string in source is less than num, only the content up to the terminating null-character is copied.(如果source 指向的字符串的⻓度⼩于num的时候,只会将字符串中到 \0 的内容(不补0)追加到destination指向的字符串末尾)

7.strncmp函数的使⽤

1 int strncmp ( const char * str1, const char * str2, size_t num );

⽐较str1和str2的前num个字符,如果相等就继续往后⽐较,最多⽐较num个字⺟,如果提前发现不⼀ 样,就提前结束,⼤的字符所在的字符串⼤于另外⼀个。如果num个字符都相等,就是相等返回0.

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-09-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.strlen的使⽤和模拟实现(获取长度函数)
    • 1.1 strlen模拟实现
    • 2.strcpy 的使⽤和模拟实现(交换函数)
      • 2.1 strcpy模拟实现
      • 3.strcat 的使⽤和模拟实现 (连接函数,将一个字符串和另一个连接)
        • 3.1 strcat模拟实现 
        • 4.strcmp 的使⽤和模拟实现 (比较函数)
          • 4.1strcmp模拟实现 
          • 5.strncpy 函数的使⽤ 
          • 6. strncat 函数的使⽤
          • 7.strncmp函数的使⽤
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档