潜学C语言——字符串,内存函数介绍

126 阅读1分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第1天,点击查看活动详情

函数介绍

求字符串长度:

strlen

长度不受限制的字符串函数:

strcpy

strcat

strcmp

长度受限制的字符串函数介绍:

strncpy

strncat

strncmp

字符串查找:

strstr

strtok

错误信息报告:

strerror


正文开始~

1.strlen

功能:计算字符串s的长度

说明:返回s的长度,不包括结束符NULL。

size_t strlen(const char* str);

1.字符串以 '\0' 作为结束标志,strlen函数返回的是在字符串中 '\0'前面出现的字符个数(不包含'\0')

2.参数指向的字符串必须要以'\0'结束

3.函数的返回值为size_t,是无符号的

例:

int main()
{
	int len = strlen("abcdef");
	printf("%d\n", len);
	return 0;
}

输出值为:6

int main()
{
	char arr[] = { 'a','b','c','d','e','f' };
	int len = strlen(arr);
	printf("%d\n", len);
	return 0;
}

输出值为;随机值

实现strlen函数的方法:

//1.计数器的方法 如下
//2.递归(不创建临时变量求字符串长度)
//3.指针减指针

​​

模拟实现:

#include<assert.h>
int my_strlen(const char* str)
{
	int count = 0;
	assert(str != NULL);
	while (*str != '\0')//while(*str)
	{
		count++;
		str++;
	}
	return count;
}
int main()
{
	int len = my_strlen("abcdef");
	printf("%d\n", len);
	return 0;
}

2.1 strcpy

 功能:把src所指由NUL结束的字符串复制到dest所指的数组中。

返回指向dest结尾处字符(NUL)的指针

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

1.源字符串必须以 '\0'结束

//错误的示范
char arr2[] = {'a','b','c'};

2.会将源字符串中的'\0'拷贝到目标空间

3.目标空间必须足够大,以确保可以存放源字符串