字符串经典例题讲解--字符串比较

本文介绍了如何通过创建一个数组来记录字符串A中每个字母出现的次数,以此判断字符串B中的所有字符是否都在A中出现。通过遍历A并用A中字母在数组中的位置进行计数,然后对比字符串B,确定B中的字符是否都存在于A中。
摘要由CSDN通过智能技术生成

字符串经典例题讲解

标题:
写一个函数返回bool值,来判断给定的字符串A和B(假设都是小写字母),是否B中的字符都存在与A中,如果是返回true,否则返回false。

解题思路:
设置一个数组,这个数组用来记录A串中都出现过哪些字母,关键在于怎么建立两者之间的关系,将字母a放置在数组的0位置,字母b放置在数组的1位置,依次类推,标记这个数组;如果在这个串中有的字母出现多次,那么这个位置的数组的值++;再将B串中的字母与A串建立的数组进行比对。

代码实现:
#include<stdio.h>
#include<string.h>
bool checkString(const char *A,const char *B)
{
int arr[26]={0};//建立这个数组的目的是为了记录A串中出现了字母的次数,数组、结构体是聚合类型如果只是初始化一部分剩下的就是默认初始化为0.
while(*A!=’\0’)
{
arr[*A-‘a’]++;//将字母对应的放在数组的位置的解决办法,遍历的字母-‘a’,就是对应数组位置(难点的理解)
A++;
}

      while(*B!='\0')	
              {         
                    if(arr[*B-'a']==0)		 
                     { 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值