C语言中如何查找字符串?

Python026

C语言中如何查找字符串?,第1张

用strstr这个函数\r\n\r\n包含文件:string.h\r\n函数名: strstr \r\n函数原型:extern char *strstr(char *str1, char *str2)\r\n功能:找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。\r\n返回值:返回该位置的指针,如找不到,返回空指针。\r\n\r\n源代码:\r\n\r\n#include\r\n#include//调用string.h中的strstr函数\r\nvoid main(){\r\nchar ch1[255]="abcde"\r\nchar ch2[100]="cd"\r\nchar* ch//用于接受返回值\r\nif((ch=strstr(ch1,ch2))==NULL){//说明没有要找的字符串\r\nprintf("-1\n")\r\n}else{//说明找到了那个字符串\r\nprintf("%d\n",ch-ch1+1)//cde的地址减去abcde的地址+1\r\n} \r\n}

package com.string.to

import java.util.Arrays

import java.util.Scanner

public class JudeCount{

public static void main(String[]args){

System.out.println("请输入你要判断的字符串:")

Scanner s=new Scanner(System.in)

String str=s.nextLine()

char[]ch=str.toCharArray()

Arrays.sort(ch)//对数组排序

char max='a'//记录出现次数最多元素

int maxcount=0//记录最大出现次数

int count=1//中间传值参数判断当前元素出现次数

for(int i=0i&ltch.length-1i++){//进行判断

if(ch<i>==ch[i+1]){

count++

}

if(ch<i>!=ch[i+1]){

if(count&gtmaxcount){

maxcount=count

max=ch<i>

}

count=1

}

}

System.out.println("出现最多的元素是:"+max+"次数为:"+maxcount)

}

}

扩展资料:

system函数用法:

用法:intsystem(char*command);

程序例:

#include<stdlib.h>

#include<stdio.h>

intmain(void)

printf("AbouttospawnandrunaDOScommand\n");

system("dir");

return0;

又如:system("pause")可以实现冻结屏幕,便于观察程序的执行结果;system("CLS")可以实现清屏操作。而调用color函数可以改变控制台的前景色和背景,具体参数在下面说明。

例如,用system("color0A");其中color后面的0是背景色代号,A是前景色代号。各颜色代码如下:

0=黑色1=蓝色2=绿色3=湖蓝色4=红色5=紫色6=黄色7=白色8=灰色9=淡蓝色A=淡绿色B=淡浅绿色C=淡红色D=淡紫色E=淡黄色F=亮白色

(注意:MicrosoftVisualC++6.0支持system)

颜色属性由两个十六进制数字指定--第一个对应于背景,第二个对应于前景。每个数字

可以为以下任何值:

0=黑色8=灰色

1=蓝色9=淡蓝色

2=绿色A=淡绿色

3=浅绿色B=淡浅绿色

4=红色C=淡红色

5=紫色D=淡紫色

6=黄色E=淡黄色

7=白色F=亮白色

实现代码如下:

#include <stdio.h>

#include <stdlib.h>

int main()

{

    char S[100],T[20]

    char ch1,ch2

    printf("请输入主字符串:\n")

    ch1=getchar()

    int i=0

    while(ch1!='\n')

    {

        S[i]=ch1

        i++

        ch1=getchar()

    }

 

    printf("请输入要筛选的字符串:\n")

    ch2=getchar()

    int j=0

    while(ch2!='\n')

    {

        T[j]=ch2

        j++

        ch2=getchar()

    }

 

    int m,n//m为S的下标,n为T的下标

    m=0

    n=0

    int num=0//num用于记录选定单词出现的次数

    while(m<=i&&n<=j)

    {

        if(S[m]==T[n])

        {

            m++

            n++

        }

        else

        {

            m=m-n+1

            n=0

        }

        if(n==j)

        {

            num++

        }

    }

    if(m==i+1)

        {

            printf("出现的次数是%d",num)

        }

}

代码二:

int strstr_cnt(const char *string ,const char *substring)

{

     int i,j,k,count=0

     for(i=0string[i]i++)

        for(j=i,k=0string[j]==substring[k]j++,k++)

           if(!substring[k+1])

                count++

     return(count)

}