C 语言 查找一个字符串2在字符串1中出现的次数

#include <stdio.h>

#include <windows.h>

int main()

{

   char a[100], b[100];

   char *temp;

   int counter = 0;

   memset( a, sizeof(a), 0 ); //清空内存

   memset( a, sizeof(b), 0 ); //清空内存

   printf( "Please input source string: " );

   gets(a); //从缓冲区获取源字符串. 

   printf( "Please input find string: " );

   gets(b); //从缓冲区获取查找字符串. 

   temp = a; //将源字符串赋给指针操作.

   while( temp )

   {

      temp = strstr( temp, b ); //在源字符串中查找
//第一次出现的位置,找到返回所处位置,未找到返回NULL.
      if( temp != NULL ) //如果能找到
//,指针偏移查找字符串的长度,然后继续循环,直到查找完成.
      {

         temp += strlen(b);

         counter++;

      }

   }

   printf( "find %d times!\n", counter ); //输出找到的个数.

   system("pause");

   return 0;

}
#include <stdio.h>
#include <string.h>

int main()
{

    int findCount(char *str1,char const*str2);

    printf("%d",findCount("123412","12"));

    return 0;
}

/**
查找str1中str2出现的次数
*/
int findCount(char *str1,char const*str2)
{

    int count=0;
    char *ptmp=str1;

    while((ptmp=strstr(ptmp,str2))!=NULL)
    {
       ptmp+=strlen(str2);
        count++;
    }

    return count;

}
时间: 2024-10-09 03:29:53

C 语言 查找一个字符串2在字符串1中出现的次数的相关文章

C#一个判断子串在父串中出现的次数

/// <summary> /// 计算字符串中子串出现的次数 /// </summary> /// <param name="str">字符串</param> /// <param name="substring">子串</param> /// <returns>出现的次数</returns> static int SubstringCount(string str,

【C语言】模拟实现strchr函数.即在一个字符串中查找一个字符第一次出现的位置并返回

//模拟实现strchr函数.即在一个字符串中查找一个字符第一次出现的位置并返回 #include <stdio.h> //#include <string.h> #include <assert.h> char* my_strchr(char *dst, char src) { assert(dst); while (*dst != '\0') { if (*dst == src) return dst; dst++; } return 0; } int main()

【c语言】模拟实现strchr函数,功能:在一个字符串中查找一个字符第一次出现的位置,如果没有出现返回NULL

// 模拟实现strchr函数,功能:在一个字符串中查找一个字符第一次出现的位置,如果没有出现返回NULL #include <stdio.h> #include <assert.h> char const* my_strchr(char const *p,char c) { assert(p != NULL); while (*p) { if (*p == c) return p; else p++; } return NULL; } int main() { char *p =

自己写的一个后缀树算法查找一个字符串的最长重复子串

在上个星期面试一家公司的笔试题上面的最后一道题就是写程序查找一个字符串的最长重复子串.当时想了很长时间没想出什么好方法,就把一个算法复杂度比较高的算法写上去了.回来上机把那个算法写了一遍测试没问题,然后自己又到网上面查查还有什么方法,然后发现好像有种叫做后缀树的方法,然后看那个方法,当时没给出代码,看图看了老半天加之自己想了好几个小时终于知道后缀树是个什么东西.然后自己萌生了一个自己写一个后缀树算法解决那个重复子串的问题.然后写了一天终于写出来了.后续有做了一些测试,发现自己写的一个只有几十个字

C语言:判断一个字符串是不是另一个字符串的旋转字符串

例如:给定s1 = AABCD和s2 = BCDAA,返回1, 给定s1=abcd和s2=ACBD,返回0. AABCD左旋一个字符得到ABCDA AABCD左旋两个字符得到BCDAA AABCD右旋一个字符得到DAABC AABCD右旋两个字符得到CDAAB 分析题目之后我们发现,一个字符串有左旋转和右旋转两种.左旋转之后的字符串在原字符串拼接后的新字符串中:右旋转之后的字符串拼接之后可以找到源字符串. 这里我们会使用两个库函数strncat和strstr,关于两个函数的定义请自己查找. 字符

模拟实现在一个字符串中查找一个字符串

在标准库中有一个函数strstr()用于在一个字符串中查找一个规定的字符串,这个函数可以模拟实现一下,代码如下: #include <stdio.h> #include <assert.h> char *my_strstr(const char str[],const char strstr[]) {  int i = 0,j = 0,k = 0;  assert(str != NULL);  assert(strstr != NULL);  for(i = 0;str[i] !=

用c语言统计一个字符串中有多少个数字字符

用c语言统计一个字符串中有多少个数字字符. #include<stdio.h>int main(){    char ch;     int count=0;    while((ch=getchar())!='\n')     {        if(ch>'0'&&ch<'9')              count++;     }     printf("%d\n",count);     return 0; }

【C语言】写一个函数,实现字符串内单词逆序

//写一个函数,实现字符串内单词逆序 //比如student a am i.逆序后i am a student. #include <stdio.h> #include <string.h> #include <assert.h> void reverse_string(char *left, char *right) //连续的字符串逆序 { char temp; while (right > left) { temp = *left; *left = *rig

【C语言】字符串替换空格:实现一个函数,把字符串里的空格替换成“%20”

//字符串替换空格:实现一个函数,把字符串里的空格替换成"%20" #include <stdio.h> #include <assert.h> void replace(char *src) { assert(src); int OldLen = 0; //原字符串长度 int NewLen = 0; //新字符串长度 int BlackNum = 0; //空格数量 int NewBack = 0; //新字符串尾部 int OldBack = 0; //原