【C语言】从n个字符串中匹配查找abc字符串个数

本文是《C语言知识点例子》系列的第四篇,讨论了如何在C语言中查找字符串中'abc'的个数。回顾了scanf_s与scanf的区别、指针概念以及char和char*的使用。文章提供了一个示例,演示如何在给定字符串中计算'abc'的出现次数。

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

在这里插入图片描述

前言

这是小5聊的《C语言知识点例子》系列的第四篇文章。
在软件行业已经有快十年,技术虽然一般般,但是足够应付和解决编程入门的相关问题!
都说十年磨一剑,积累到一定经验,是时候发挥自己的价值,给予入门的同行些许的帮助!
为什么要写收费专栏,其实原因很简单,时间就是金钱(qiong),写博客是需要花很多精力和时间,也算是一种劳动付出!
让编程入门变得更简单,让解题思路有更好的方法!

知识点重温

1、scanf和scanf_s区别

最大的区别就是,scanf_s函数是scanf函数的升级版本,弥补了scanf函数会发生内存溢出报错的情况。简单的说就是,更安全了,提高了黑客的挑战成本。

'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

“scanf”:此函数或变量可能不安全。考虑改用scanf_s。已经禁用和弃用

在这里插入图片描述

2、指针

指针简单理解就是内存地址

3、char、char*使用

在C语言中,单引号保存单个字符,双引号表示存储字符数组,也就是字符串
1)char
字符类型,TA占用一个字节(8位),存储单个字符,可以存储ASCII码表中的任意一个字符

// 只保存单个字符串
char single = 'abc1';
printf("%c", single);

// 字符串数组
char more[] = "abc";
printf("%c", more[0]);

在这里插入图片描述
在这里插入图片描述
2)char*
在数据类型后面加一个星号*,表示指针类型的意思,因此,char*就是代表指向字符的指针类型。

  • 常见情况
    在这里插入图片描述
#include <stdio.h>
#include <stdlib.h>

int main() {    
	
	// 解决方法一:加载关键词const
	const char* str1 = "abc";

	// 解决方法二:强制转换
	char* str2 = (char*)"abc";

	// 解决方法三:用数组赋值
	char arr[] = { 'a', 'b', 'c' };
	char* ptr = arr;   // 存储指向字符数组的指针

	system("pause");
	printf("\n");    
	return 0;
}
  • 输出指针内容
#include <stdio.h>
#include <stdlib.h>

int main() {    
	
	// 解决方法一:加载关键词const
	const char* str1 = "abc";

	// 解决方法二:强制转换
	char* str2 = (char*)"abc";

	// 解决方法三:用数组赋值
	char arr[] = { 'a', 'b', 'c' };
	char* ptr = arr;   // 存储指向字符数组的指针

	printf_s("输出指针变量指向的第一个值:%c\n", *ptr);
	printf_s("输出指针变量指向的第二个值:%c\n", ++*ptr);
	ptr += 2;
	printf_s("输出指针变量指向的第三个值:%c\n", *ptr);


	system("pause");
	printf("\n");
	return 0;
}

在这里插入图片描述

查找字符串

假设输入一个字符串:abc123ab2abc66a,查找出abc字符串的个数

未完待续。。。

🏆🏆 原则:Write Less Do More!
📋📋 简介:一只喜欢全栈方向的程序员,专注基础和实战分享,欢迎咨询,尽绵薄之力答疑解惑!

收尾

既然订阅了,总要收货点什么,尽我10年开发经验,只要在我认知范围内都会给到详细的简答,写博客不容易,望理解和支持!
若你对文章质量分、收益专栏等排行榜感兴趣,可V我!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈小5

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值