我是靠谱客的博主 彩色白羊,这篇文章主要介绍c语言遍历一个字符串中所需要查找字符串出现的次数,现在分享给大家,希望可以做个参考。

遍历一个字符串中所需要查找多个字符串出现都次数


直接参考c语言库函数strstr写。
例如输入字符串“abcdefgabcdefg”,查找字符‘c’出现的次数。查到为2次。
输入字符串“abcdefgabcdefg”,查找“cd”出现的次数,查到为2次。
!!!!配图方便理解!!!!
在这里插入图片描述

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define M 1000

int find_char(char* str1,char* str2);

int main()
{
	char arr1[M]={0};
	printf("intput the char:n");
	scanf("%s",arr1);//aabbcc
	printf("input search char:n");
	char arr2[M]={0};
	scanf("%s",arr2);//b

	//char *str1=arr1;//指针str指向的是arr数组首元素地址,故str++便是遍历字符
	//char *str2=arr2;
	
	int s=find_char(arr1,arr2);
	if(s==-1) printf("cannot searchn");
	else printf("%dn",s);
	return 0;
}
int find_char(char* str1,char* str2)
{
	char* s1=str1;
	char* s2=str2;
	char* cur=s1;
	int count=0;
	if(*s1=='' || *s2=='' ) return -1;//有一个数组为空,直接return-1
	while(*cur!='')  //遍历数组arr1
	{
		s1=cur;//s1和cur同时指向arr1头字符str1
		s2=str2;//s2同理
		 while(*s1!='' && *s2!='' && *s1==*s2)
		 {   //当遍历数组,s1和s2相等时,s1和s2同时指向下一个
		 	  s1++;
		 	  s2++;
		 }
		 if(*s2=='')
		 {
		 //当需要查找的字符s2遍历完了,重新指向它的头,继续循环遍历str1,每次找到找到count++
		 		s2=str2;
		 		count++;
		 }
		cur++;
	}
	return count;
}

本人小白,旨在记录。如有意见请指正!欢迎探讨

最后

以上就是彩色白羊最近收集整理的关于c语言遍历一个字符串中所需要查找字符串出现的次数的全部内容,更多相关c语言遍历一个字符串中所需要查找字符串出现内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部