字符串的函数

头文件

include <string.h>

五大函数:

strlen()、strcpy、strcat()、strcmp()、strstr()

用法:

strlen():计算字符串长度,但不计'\0'这个字符

cpp 复制代码
#include <string.h>
int main()
{
	char arr[] = "abcdef";
	int len = strlen(arr);
    printf("%d\n", len);
	return 0;
}

输出:6

strcpy:把arr2\[\]字符串复制到arr1\[\]上(包括终止符)

cpp 复制代码
#include <string.h>
int main()
{
	char arr1[] = "abcdef";
	char arr2[] = "abc";
	strcpy(arr1, arr2);
	printf("%s\n", arr1);
	return 0;
}

输出:abc

strcat():把arr2\[\]字符串追加到arr1\[\]上(覆盖掉arr1\[\]的'\0',arr2\[\]的'\0'保留下来)

cpp 复制代码
#include <string.h>
int main()
{
	char arr1[20] = "hello";
	char arr2[] = " world";
	strcat(arr1, arr2);
	printf("%s\n", arr1);
	return 0;
}

输出:hello world

strcmp():

  1. strcmp()函数根据ASCII编码开始比较俩个字符串中的第一对字符,如果彼此相等, 继续 比较下一对字符所对应的ASCII码值,直到字符不相同或者达到终止字符'\0';

  2. 函数返回值类型为 int

  3. 函数返回值为0,表示俩个字符串相等;

函数返回值为大于0的数字,表示第一个字符串大于第二个字符串;

函数返回值为小于0的数字,表示第一个字符串小于第二个字符串;

cpp 复制代码
#include <string.h>
int main()
{
	char* arr1 = "abcdef";
	char* arr2 = "abc";
	int ret = strcmp(arr1, arr2);
	if (ret > 0)
	{
		printf(">   ");
		printf("ret=%d\n", ret);
	}
	else if (ret == 0)
	{
		printf("=");
		printf("ret=%d\n", ret);
	}
	else
	{
		printf("<");
		printf("ret=%d\n", ret);
	}
	return 0;
}

输出:> ret=1

相关推荐
金銀銅鐵2 小时前
[Python] 扩展欧几里得算法
python·数学·算法
To_OC4 小时前
LC 200 岛屿数量:经典 DFS 入门题,我第一次写居然连方向都搞错了
javascript·算法·leetcode
To_OC21 小时前
LC 128 最长连续序列:别上来就排序,O (n) 解法才是这题的灵魂
javascript·算法·leetcode
05Kevin1 天前
lk每日冒险题--数据结构6.27
算法
To_OC2 天前
从一次栈溢出报错说起,我把递归彻底扒明白了
javascript·算法·程序员
千纸鹤安安2 天前
千问Qwen-AgentWorld来了:一个语言模型搞定七大Agent场景,GPT-5.4都输了
算法
七牛开发者2 天前
MCP 到底是什么?为什么 Agent 都想接上它
算法·aigc·agent