字符串函数(C语言详解)

本文详细介绍了C语言中的字符串操作函数,如strlen、strcpy、strcat、strcmp、strstr等,以及字符分类和转换函数,如islower、isupper等,并通过实例演示了如何使用这些函数进行字符串处理和字符类型检查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.字符串简介

字符串是一串连续的且以\0结尾的字符

char arr[]="zhangsan";//将字符串存到数组里面
char*a="lisi";//常量字符串
char arr1[]={'z','h','a','n','g'};//字符数组

注意:

1.以第一种形式初始化字符串时,计算机会自动在字符串末尾加上\0,所以在给数组申请内存空间时,需要多申请一个字节的内存来存放\0

2.第二种形式是常量字符串,是不可以被修改

3.第三种形式是字符数组,末尾没有\0,输出时需要一个字符一个字符的输出,如果想要像字符串一样一次输出,可以在最后一个字符末尾手动加上一个\0(在确保内存空间足够的情况下),然后用%s打印

4.一个字符占用一个字节的内存空间

5.字符串也可以是中文,一个中文汉字占两个字节(GBK编码)

2.字符串函数

2.1字符串函数的头文件

#include<string.h>

2.2 strlen()函数

2.2.1strlen函数的原型(计算字符串长度)

size_t strlen ( const char * str );

strlen函数的形参是一个char类型的地址,因为我们需要防止字符串的内容被修改,所以加上

const防止内容被修饰,返回值是size_t类型,也就是无符号整形,因为字符串的个数不可能为负数

2.2.2举例说明

#include<stdio.h>
int main()
{
	char arr[] = "1234567890";
	size_t len = strlen(arr);
	printf("%zd", len);
	return 0;
}

因为strlen的返回值是size_t,所以我们用size_t len来接收返回值,当然也可以用int来接收,结果也是正确的

2.2.3模拟实现strlen()函数

模拟1(计数)

size_t my_strlen(const char* str)
{
    assert(str);//断言str是否为空指针
	size_t count = 0;
	while (*str)//因为\0的的ASCLL码为0,所以当str指向\0时,不进行循环
	{
		count++;//如果str不指向\0,那么count++,统计字符个数
		str++;//统计完一个字符,向后走一个字节
    }
	return count;
}

模拟2(递归)

size_t my_strlen1(const char* str)
{
	assert(str);
	if (*str == '\0')
		return 0;
	else
		return 1 + my_strlen(str + 1);
}

模拟3(指针减指针)

size_t my_strlen(const char* str)
{
	assert(str);
	char* p = str;
	while (*str)
	{
		str++;
	}
	return str - p;
}

2.3 strcpy()函数

2.3.1strcpy函数的原型(字符串拷贝)

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

char*destination用来接收拷贝的目标地址,const char *source用来接收源字符串地址

评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值