精华内容
下载资源
问答
  • c语言比较两个字符串是否相等strcmp

    万次阅读 多人点赞 2017-03-27 13:38:46
    C语言提供了几个标准库函数,可以比较两个字符串是否相同。以下是用strcmp()函数比较字符串的一个例子: #include #include int main(void) { char str_1[] = "abc"; char str_2[] = "abc"; char str_3[] = ...

    c语言提供了几个标准库函数,可以比较两个字符串是否相同。以下是用strcmp()函数比较字符串的一个例子:

     

     

     

     

     

    #include <stdio.h>
    #include <string.h>
    int main(void)
    {
        char str_1[] = "abc"; 
        char str_2[] = "abc";
        char str_3[] = "ABC";
        if (strcmp(str_1, str_2) == 0)
            printf("str_1 is equal to str_2. \n");
        else
            printf("str_1 is not equal to str_2. \n");
        if (strcmp(str_1, str_3) == 0)
            printf("str_1 is equal to str_3.\n");
        else
            printf("str_1 is not equal to str_3.\n");
        return 0;
    }


    上例的打印输出如下所示:   

     

    strcmp()函数有两个参数,即要比较的两个字符串。strcmp()函数对两个字符串进行大小写敏感的(case-sensitiVe)和字典式的(lexicographic)比较,并返回下列值之一:
    ----------------------------------------------------
        返  回  值         意  义
    ----------------------------------------------------
        <0               第一个字符串小于第二个字符串
         0               两个字符串相等    ·
        >0               第一个字符串大于第二个字符串
    ----------------------------------------------------

    在上例中,当比较str_1(即“abc”)和str_2(即“abc”)时,strcmp()函数的返回值为0。然而,当比较str_1(即"abc")和str_3(即"ABC")时,strcmp()函数返回一个大于0的值,因为按ASCII顺序字符串“ABC”小于“abc”。

    strcmp()函数有许多变体,它们的基本功能是相同的,都是比较两个字符串,但其它地方稍有差别。下表列出了C语言提供的与strcmp()函数类似的一些函数:   
    -----------------------------------------------------------------
        函  数  名                   作  用
    -----------------------------------------------------------------
        strcmp()         对两个字符串进行大小写敏感的比较
        strcmpi()        对两个字符串进行大小写不敏感的比较
        stricmp()        同strcmpi()
        strncmp()        对两个字符串的一部分进行大小写敏感的比较
        strnicmp()       对两个字符串的一部分进行大小写不敏感的比较
    -----------------------------------------------------------------
    在前面的例子中,如果用strcmpi()函数代替strcmp()函数,则程序将认为字符串“ABC”等于“abc”。

     

     

     

     

     

     

     

     

     

    展开全文
  • 1、 function aa(){ var a=?; var b=?; if(b!... 方法1和方法2出了对比参数的前后不一致其他全一样。有什么不同????? 莫名其妙被一个不干开发的怼了。怼的我不明所以,求指点
  • 今天看到一篇对比 perl, C, C++, Java 效率的博文把C 和 Perl的代码摘下来, 从1500万行的文件中查找指定字符串,他的机器用C 2分完成,C++ 4分完成,perl是8分完成。C代码如下:#include#includevoidmain(){...

    今天看到一篇对比  perl, C, C++, Java 效率的博文

    把C  和 Perl的代码摘下来, 从1500万行的文件中查找指定字符串,他的机器用C 2分多完成,C++ 4分多完成,perl是8分多完成。

    C代码如下:#include 

    #include 

    void main(){

    int len=2048;

    char filename[20];//文件名

    char buff[10000]; //文件内容缓冲区

    char hit[5];      // 查找的字符串

    FILE *fd;

    int i,j,flag=0,over=0;

    int max,readed;

    int count=0;//最后的结果

    strcpy(&filename[0] , "d:\\access.log_");  // 指定文件名

    strcpy(&hit[0] , "HIT");                   // 指定字符串

    buff[0]=0x0;

    buff[1]=0x0;

    //打开文件:

    if((fd = fopen(&filename[0] , "rb"))==NULL){

    printf("Error : Can not open file %s\n",&filename[0]);

    }

    //读取文件内容

    while(over != 1){

    readed = fread(&buff[2] , 1 , len , fd);

    if(readed 

    over=1;

    max=readed;

    }else{

    max=len;

    }

    for(i=0;i

    for(j=0;j<3;j++){

    if(hit[j] != buff[i+j]){

    flag=0;//一旦有一个不相同就退出并且标志为0

    break;

    }else{

    flag=1;//一个相同为1,如果连续都相同最后结果定是1

    }

    }

    if(flag==1){

    count++;

    i+=j-1;

    }else{

    if(j==0){

    i+=(j);

    }else{

    i+=(j-1);

    }

    }

    }

    //把最后两个字符转移到前面两个字节以防止切断搜索串.

    buff[0]=buff[max];

    buff[1]=buff[max+1];

    }

    fclose(fd);

    printf("count:%d\n",count);

    }

    perl代码如下:#!/usr/bin/perl -w

    $filename="d:\\access.log_";

    $count = 0;

    open(FILE , "

    while()

    {

    @match_list = ($_ =~ /HIT/g);

    $count=$count+@match_list;

    }

    close(FILE);

    print "Count = $count\n";

    exit

    参考:

    http://www.yesky.com/409/1701409_2.shtml

    展开全文
  • 主要介绍了JS实现的用来对比两个用指定分隔符分割的字符串是否相同,本文代码为特殊需要而写,需要的朋友可以参考下
  • 在Java中,可以使用“==”来进行判断字符串是否相等。 示例: String s1="Hello"; String s2="Hello"; //输出返回值 System.out.println(s1==s2); 这时,我们如果运行一下,会发现会输出...

     

    在Java中,经常需要比较两个字符串,这里总结一下。

     

    1.判断字符串是否相等

    在Java中,可以使用“==”来进行判断字符串是否相等。

    示例:

    String s1="Hello";
    String s2="Hello";
    //输出返回值
    System.out.println(s1==s2);
    
    

    这时,我们如果运行一下,会发现会输出“true”。

    换一种赋值方式再试试。

    String s1="Hello";
    String s2=s1;
    //输出返回值
    System.out.println(s1==s2);

    这是,运行一下程序,输出的值为“true”。

    但是我们知道,字符串的初始化有两种方式:直接等号赋值与用new初始化,直接等号赋值放入内存池,其它变量也可以引用;new初始化分配内存空间,不可引用;

    因此,我们用new初始化的方式试一试。

    String s1=new String("Hello");
    String s2=new String("Hello");
    //输出返回值
    System.out.println(s1==s2);

    这时,输出的结果会变成false。 

    为什么会有这样的结果呢?这和内存中的常量池有关。

    常量池属于方法区的一部分,当运行到s1创建对象时,如果常量池中没有,就在常量池中创建一个对象”Hello”,第二次创建的时候,就直接使用,所以两次创建的对象其实是同一个对象,它们的地址值相等。而对于两个基本数据类型,“==”比较的是两个对象的值是否相等;而对于引用类型,“==”比较的是两个对象的地址是否相等。也就是说,对于引用类型,当两个对象的地址相等,即指向同一个地址时,才会相等。

    因此前两次的结果都是false。

    再回到第三次的比较的赋值语句,

    String s1=new String("Hello");
    String s2=new String("Hello");

    上文中提到,new初始化分配内存空间,不可引用;也就是说,上面的“System s1=new String("Hello")”,相当于创建了两次对象,一次是在常量池中创建了对象”Hello”,一次是在堆内存中创建了对象s1。下一个语句也是同理。因此s1、s2的地址不一样,因此这输出false。所以使用“==”判断的时候需要注意的地方比较多。

     

    那么想要毫无顾虑地判断引用类型是否相等该怎么办呢?这时候equals()方法就派上用场了。

     

    为什么这么说呢?

     

    这和equals()方法的重写有关。在equals()方法存在于Object类中,因为Object类是所有类的直接或间接父类,也就是说所有的类中的equals()方法都继承自Object类,而通过源码我们发现,Object类中equals()方法底层依赖的是==号,那么,在所有没有重写equals()方法的类中,调用equals()方法其实和使用==号的效果一样,也是比较的地址值,然而,Java提供的所有类中,绝大多数类都重写了equals()方法,重写后的equals()方法一般都是比较两个对象的值,即比较两个对象的内容 

     

    因此,想要比较两个对象的值是否相等,可以通过equals()方法来完成。

    示例:

    
    string s1="Hello";
    string s2="Hello";
    //输出返回值
    System.out.println(s1.equals(s2));
    
    string s1="Hello";
    string s2=s1;
    //输出返回值
    System.out.println(s1.equals(s2));
    
    
    
    string s1="Hello";
    string s2="He";
    //输出返回值
    System.out.println(s1.equals(s2));

    这时,因为前两个比较语句,s1和s2相等,因此会输出两个true,最后一个比较语句由于s1和s2不相等,因此会输出一个false。

    2.比较字符串的大小

    在Java中,我们用compareTo()方法来比较字符串的大小。该方法属于java.lang.String包下,是Java提供的一个字符串比较的方法。

    CompareTo()返回值: int

    它是先比较对应字符的大小(ASCII码顺序),返回值类型分别有三种,小于0,等于0,大于0,
    1. 如果字符串相等返回值0;
    2. 如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的差值(ascii码值)(负值前字符串的值小于后字符串,正值前字符串大于后字符串);
    3. 如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,以此类推,直至比较的字符或被比较的字符有一方全比较完,这时就比较字符的长度。

    语法示例:

    String s1 = "abc"; 
    String s2 = "abcd"; 
    String s3 = "abcdf"; 
    String s4 = "1bcdf"; 
    String s5 = "c"; 
    System.out.println( s1.compareTo(s2) ); // -1 (前面相等,此时比较字符串的长度,s1长度小1,因此输出-1) 
    System.out.println( s1.compareTo(s3) ); // -2(前面相等,此时比较字符串的长度,s1长度小2,因此输出-2) 
    System.out.println( s1.compareTo(s4) ); // 48 (第一个字符不相等,此时比较第一个字符的ASCII码,"a"的ASCII码是97,"1"的的ASCII码是49,所以返回48) 
    System.out.println( s1.compareTo(s5) ); // -2 (第一个字符不相等,此时比较第一个字符的ASCII码,"a"的ASCII码是97,"c"的ASCII码是99,所以返回-2)

    以上就是Java中如何比较字符大小以及判断字符串是否相等的方法,如果大家发现了文章里的错误或者有更好的方法,欢迎留言评论,大家一起学习呀。

     

    展开全文
  •  2:两个字符串不仅长度相等,而且相应位置上的字符完全一致(区分大小写),比如 Beijing 和 Beijing  3:两个字符串长度相等,相应位置上的字符仅在不区分大小写的前提下才能达到完全一致(也就是说,它并不满足...

    问题描述
      给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一:
      1:两个字符串长度不等。比如 Beijing 和 Hebei
      2:两个字符串不仅长度相等,而且相应位置上的字符完全一致(区分大小写),比如 Beijing 和 Beijing
      3:两个字符串长度相等,相应位置上的字符仅在不区分大小写的前提下才能达到完全一致(也就是说,它并不满足情况2)。比如 beijing 和 BEIjing
      4:两个字符串长度相等,但是即使是不区分大小写也不能使这两个字符串一致。比如 Beijing 和 Nanjing
      编程判断输入的两个字符串之间的关系属于这四类中的哪一类,给出所属的类的编号。
    输入格式
      包括两行,每行都是一个字符串
    输出格式
      仅有一个数字,表明这两个字符串的关系编号
    样例输入
    BEIjing

    beiJing

    样例输出
    3

    利用java中String的方法

    import java.util.Scanner;
    
    public class Main {
    	public static void main(String[] args) {
    		Scanner sc=new Scanner(System.in);
    		String be=sc.nextLine();
    		String af=sc.nextLine();
    		if(be.length()!=af.length()) {
    			System.out.println(1);
    		}else if(be.equals(af)){
    			System.out.println(2);
    		}else if(be.equalsIgnoreCase(af)) {
    			System.out.println(3);
    		}else {
    			System.out.println(4);
    		}
    	}
    }
    
    展开全文
  • 字符串对比

    2021-02-19 13:34:45
    题目 1466: [蓝桥杯][基础练习VIP]字符串对比 时间限制: 1Sec 内存限制: 512MB 提交: 5002 解决: 2940 题目描述 给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一...
  • 今天小编就为大家分享一篇Python判断中文字符串是否相等的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • equalsIgnoreCase(str):比较字符串内容是否相等,但是会忽略(不区分大小写)大小写 【示例】 public static void main(String[] args) { String str="TOM"; boolean rs = str.equalsIgnoreCase("tom");...
  • C语言:比较两个字符串是否相等

    万次阅读 多人点赞 2018-09-24 13:02:23
    } 讲解上面的程序: 定义了一个char(字符型)的指针变量str1,并且初始化为 "abc" 定义了一个char(字符型)的指针变量str2,并且初始化为 "abc" 通过strcmp进行比较两个字符串是否相同,如果相同返回0(详细见strcmp...
  • 我相信你判断字符串是否相等时肯定用过" == ",得不到想要的结果就找到了这篇文章; 这个"=="其实两边对比字符串的地址,并不是字符串的值; String a = "hello" if(a == "hello") { //然而并不会进来 } //应该...
  • JS 前端 判断字符串是否相等

    千次阅读 2019-03-29 14:33:06
    js在判断字符串是不是相等时遇到问题:相同字符串相等 使用 ==或者 ===都返回不相等。 使用: encodeURIComponent(str)//可把字符串作为URI 组件进行编码。 ...
  • 我将在下面列出一些代码来解释这个问题,但基本上我要做的是在一个函数中进行比较——一个字符串和一个只包含该字符串的行。我有以下清单:1org_tasks = ["general_static ", "host_general_static &...
  • 对比字符串

    2020-06-09 09:33:06
    比较字符串 a 和字符 b 是否完全一致,长度,内容等完全一致。 如果完全一致,输出相同,如果不一致,输出不同。 import java.util.Scanner; public class ContrastString { public static void main(String[] args)...
  • 比较字符串是否相同.rar比较字符串是否相同.rar
  • 详细对比Java字符串的存储方式

    千次阅读 2019-11-28 18:47:27
    详细对比Java字符串的存储方式 字符串: String name = "hello"; 变量名name存储在jvm栈,值"hello"存储在堆中的常量池中 字符串对象: String name2 = new String("hello"); 变量名name2存储在jvm栈,值"hello...
  • 蓝桥杯vip 字符串对比题目如下给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一:1:两个字符串长度不等。比如 Beijing 和 Hebei2:两个字符串不仅长度相等,而且...
  • QT中怎么比较两个中文字符串是否相等,如A为一个字符串B为另外一个,怎么比较他们是否相等
  • #include&lt;... //比较两个字符串是否相等,(或者说前字符串比后字符串不同的地方大几) int My_strcmp( const char *str1,const char *str2) { int tmp=0; while((tmp=*str1-*st...
  • 比较字符串是否相等

    2016-04-09 16:14:56
    public static void main(String[] args) { // TODO Auto-generated method stub  //两个字符串 String to="1234567"; String on="123456";  //比较大小 if(to.equals(on)){ System.out

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 146,838
精华内容 58,735
关键字:

对比多字符串是否相同