【C基础】字符函数和字符串函数

本文详细介绍了C语言中的字符串处理函数,包括求字符串长度的strlen、字符串复制和拼接的strcpy、strcat、strncpy、strncat、字符串比较的strcmp、strncmp,以及字符串查找的strstr和strtok。此外,还涵盖了内存操作函数memcpy、memmove和memset的使用,这些函数在处理字符和字符串时非常关键。
摘要由CSDN通过智能技术生成

        C语言中对字符和字符串的处理很是频繁,但是C语言本身是没有字符串类型的,字符串通常放在常量字符串中或者字符数组中。
        字符串常量适用于那些对它不做修改的字符串函数。

        一、字符串函数

        1.求字符串长度 strlen

        字符串以 '\0' 作为结束标志,strlen函数返回的是在字符串中 '\0' 前面出现的字符个数(不包
含 '\0' );
        size_t strlen ( const char * str );
        参数指向的字符串必须要以 '\0' 结束,否则在内存中一直寻找,直到遇见'\0'停止;
        注意函数的返回值为size_t,是无符号的。

//strlen
//string length
//求字符串长度的,统计的是字符串中\0之前出现的字符个数
#include <stdio.h>
#include <string.h>
int main()
{
	//a b c \0 d e f \0
	char arr1[] = "abc\0def";    //三个字符之后遇上'\0',所以字符串长度为3
	char arr2[] = "abcdef";    //在f后面自动添加'\0',所以字符串长度为6
	char arr3[] = { 'a', 'b', 'c' };    //这种方式不会在末尾自动加上'\0',
                                        //所以会一直往后,字符串长度为大于3的随机值
	printf("%d\n", strlen(arr1));
	printf("%d\n", strlen(arr2)); 
	printf("%d\n", strlen(arr3));

	return 0;
}

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

        1)strcpy 复制字符串

        源字符串必须以 '\0' 结束。
        目标空间必须有足够的大,能容纳下源字符串的内容。
        目标空间必须可修改。

int main()
{
	char arr1[10] = {0};
	char arr2[] = "abcdef";
	char arr3[] = "abc\0def";

	strcpy(arr1, arr2);     //从arr2处开始复制字符到arr1中,直到遇到'\0'
	printf("%s\n", arr1);

	strcpy(arr1, arr3);     //从arr2处开始复制字符到arr1中,直到遇到'\0'
	printf("%s\n", arr1);

	return 0;
}

        模拟实现strcpy函数

//模拟实现strcpy函数
char* my_strcpy(char* dest, const char* src)
{
	assert(dest);
	assert(src);
	char* ret = dest;
	while (*dest++ = *src++)
	{
		;
	}

	return ret;
}

         2)strcat 拼接两个字符串

         源字符串必须以 '\0' 结束。
        目标空间必须有足够的大,能容纳下源字符串的内容。
     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值