本篇博客将讲解以下知识:
(1)strcmp的使用和模拟实现
(2)strncpy的使用
1、strcmp的使用和模拟实现
注意:使用strcmp时要包含头文件:string.h,strcmp是用来比较两个字符串大小的
注意:两个字符串是不能直接用>,< =,>=,<=来进行比较。字符串比较时,比较的是内容。
例如:
(1)strcmp的使用
strcmp函数原型:
int strcmp( const char* str1, const char * str2);
str1对应于第一个字符串
str2对应于第二个字符串
strcmp函数在比较字符串的时候是对应位置上字符之间的比较。
strcmp返回值:
(1)第一个字符串大于第二个字符串,则返回一个大于0的数字;
(2)第一个字符串等于第二个字符串,则返回0;
(3)第一个字符串小于第二个字符串,则返回一个小于0的数字;
两个字符串内部是怎么比较的,内部比较两个字符串对应位置上字符ASCII码值的大小。
vs2022中strcmp的返回值:
(1)返回值>0,则返回1;
(2)返回值==0,则返回0;
(3)返回值<0,则返回-1;
代码示例:
(2)strcmp的模拟实现
代码:
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<assert.h>
int my_strcmp(const char* str1, const char* str2)
{
assert(str1 && str2 != NULL);
while (*str1 == *str2)
{
if (*str1 == '\0')
{
return 0;
}
str1++;
str2++;
}
if (*str1 > *str2)
{
return 1;
}
else
{
return -1;
}
}
int main()
{
char arr1[] = "abc";
char arr2[] = "avc";
int result = my_strcmp(arr1, arr2);
printf("%d\n", result);
return 0;
}
总结:
strcpy, strcat , strcmp 是长度不受限制的字符串函数(即:不会追加几个,拷贝几个,比较几个)
而strncpy, strncat, strncmp是长度受限制的字符串函数。
2、strncpy函数的使用
注意:使用strncpy函数时要包含头文件:string.h
strncpy原型:
char* strncpy(char* destination, char* source,size_t num);
(1)拷贝num个字符从源空间到目标空间中
(2)如果源字符串的长度小于num,则拷贝完字符串之后,紧挨着在目标空间的后边追加‘\0’,知道num个。
代码示例:
拷贝num个字符,就是拷贝num个字符,不会加‘\0’;
但是如果源字符串的长度小于num,则拷贝完字符串之后,紧挨着在目标空间的后边追加‘\0’,知道num个。
代码示例:
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » 【C语言】字符函数和字符串函数(下)
发表评论 取消回复