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

2024-09-23 19:02:46 浏览数 (2)

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

1 size_t strlen ( const char * str );

字符串以 '' 作为结束标志,strlen函数返回的是在字符串中 '' 前⾯出现的字符个数(不包 含 '' )。 • 参数指向的字符串必须要以 '' 结束。 • 注意函数的返回值为 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 );

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

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 );

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

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 == '')
 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指向的字符串末尾,再追加⼀个 字 符)。 • 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)追加到destination指向的字符串末尾)

7.strncmp函数的使⽤

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

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

0 人点赞