字符串经典例题讲解
标题:
写一个函数返回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)
{