当前位置: 首页 > article >正文

C11.【C++ Cont】遍历字符串的两种方式和strstr函数

目录

1.遍历字符串的两种方式

for循环

while循环

2.strstr函数

练习

初写代码

提交结果

修正代码

提交结果

3.模拟实现strstr


1.遍历字符串的两种方式

for循环

	for (int i=0;i<strlen(arr);i++)
	{
		cout<<arr[i]; 
	}

while循环

	int i=0;
	while (arr[i])
	{
		cout<<arr[i];
		i++;	
	}

2.strstr函数

cplusplus网的介绍 点我跳转

1.strstr本质上用来查找子字符串,

2.strstr(str1,str2);用来在str1字符串中查找str2第一次出现的位置,如果找到了返回第一次出现的地址;如果没找到返回NULL(空指针)

3.使用前应包含头文件<cstring.h>

练习

https://www.luogu.com.cn/problem/B2118

题目描述

输入两个字符串,验证其中一个串是否为另一个串的子串。

输入格式

两行,每行一个字符串。

输出格式

若第一个串 s1​ 是第二个串 s2​ 的子串,则输出(s1) is substring of (s2)

否则,若第二个串 s2​ 是第一个串 s1​ 的子串,输出(s2) is substring of (s1)

否则,输出 No substring

输入输出样例

输入 #1

abc
dddncabca

输出 #1

abc is substring of dddncabca

输入 #2

aaa
bbb

输出 #2

No substring

说明/提示

对于 100% 的数据,字符串长度在 20 以内。

初写代码

#include <iostream>
#include <cstring>
using namespace std;
int main()
{
	char arr1[20];
	char arr2[20];
	cin>>arr1>>arr2;
	if (strstr(arr2,arr1))
		cout<<arr1<<" is substring of "<<arr2;
	else
		cout<<"No substring";
 
	return 0;
}

提交结果

哪里出问题了?

再读一遍题目,验证其中一个串是否为另一个串的子串

即可能arr1是arr2的子串,也可能arr2是arr1的子串,上方代码的if没有判断全

修正代码

#include <iostream>
#include <cstring>
using namespace std;
int main()
{
	char arr1[20];
	char arr2[20];
	cin>>arr1>>arr2;
	if (strstr(arr2,arr1))
		cout<<arr1<<" is substring of "<<arr2;
	else if (strstr(arr1,arr2))
		cout<<arr2<<" is substring of "<<arr1;
	else
		cout<<"No substring";
 
	return 0;
}

提交结果

3.模拟实现strstr

具体参见55.【C语言】字符函数和字符串函数(strstr函数)文章


http://www.kler.cn/a/458691.html

相关文章:

  • 人工智能:变革时代的核心驱动力
  • 【每日学点鸿蒙知识】无障碍、getLastLocation、蓝牙问题、卡片大小、关系型数据库等
  • Enum枚举类与静态变量和静态数组的区别
  • 计算机网络 (17)点对点协议PPP
  • 结合长短期记忆网络(LSTM)和无迹卡尔曼滤波器(UKF)的技术在机器人导航和状态估计中的应用前景
  • 【时时三省】(C语言基础)动态内存函数calloc
  • 华为OD E卷(100分)37-考勤信息
  • 基于 Paimon x Spark 采集分析半结构化 JSON 的优化实践
  • Spring Retry + Redis Watch实现高并发乐观锁
  • UI页面布局分析(5)- 评分弹窗的实现
  • 【PCIe 总线及设备入门学习专栏 5.1 -- PCIe 引脚 PRSNT 与热插拔】
  • Edge Scdn是用来干什么的?
  • 用户界面的UML建模05
  • element-plus在Vue3中开发相关知识
  • AI文献阅读ChatDOC 、ChatPDF 哪个好?
  • 如何在Linux上配置SSH密钥以实现免密登录
  • PostgreSQL 初始化配置设置
  • Unity功能模块一对话系统(4)实现个性文本标签
  • 2024-12-29-sklearn学习(25)无监督学习-神经网络模型(无监督) 烟笼寒水月笼沙,夜泊秦淮近酒家。
  • Leetcode 3405. Count the Number of Arrays with K Matching Adjacent Elements
  • 【LangChain】Chapter1 - Models, Prompts and Output Parsers
  • 【开源免费】基于SpringBoot+Vue.JS网上摄影工作室系统(JAVA毕业设计)
  • PostgreSQL中FIRST_VALUE、LAST_VALUE、LAG 和 LEAD是窗口函数,允许返回在数据集的特定窗口(或分区)内访问行的相对位置
  • 软件测试之单元测试
  • 技术周总结 12.23~12.29 周日(C#异步线程及调试)
  • 网络畅通无阻:计算机网络知识点复习指南