精华内容
下载资源
问答
  • C++ 判断两个字符串是否相等

    千次阅读 2021-05-09 16:41:53
    #include <iostream> #include <string> #include <string.h> using namespace std;... string str1 = "abc", str2 = "abc";... if ( strcmp( str1.c_str(), str2.c_str() ) == 0 ) ...
    #include <iostream>
    #include <string>
    #include <string.h>
    using namespace std;
    
    int main()
    {
        string str1 = "abc", str2 = "abc";
    
        if ( strcmp( str1.c_str(), str2.c_str() ) == 0 )
            cout << "Yes" << endl;
        else
            cout << "No" << endl;
           
    
        return 0;
    }
    
    #include <string>
    #include <string.h>
    #include <iostream>
    
    using namespace std;
    
    string t1 = "helloWorld";
    string t2 = "helloWorld";
    
    int main(){
        if (t1 == t2)
        {
            cout<<"***t1 ,t2 是一样的\n";
            cout<<"这是正确的\n";
        }
    
        // error
        if (t1.c_str() == t2.c_str())
        {
            cout<<"@@@t1 ,t2 是一样的\n";
        }
        // error
        if (t1.c_str() == "helloWorld")
        {
            cout<<"===t1 ,t2 是一样的\n";
        }
    
        if (strcmp(t1.c_str(),t2.c_str()) == 0)
        {
            cout<<"###t1 ,t2 是一样的\n";
            cout<<"这是正确的\n";
        }
        return 0;
    }
    

    输出:

    ***t1 ,t2 是一样的
    这是正确的
    ###t1 ,t2 是一样的
    这是正确的
    
    展开全文
  • 最近在做松哥的微人事项目时...由于一直使用C和C++比较多,C++种的std::string类比较两个字符串内容是否相等时可以直接使用==操作符重载运算符。下面是根据职位名称获取职位信息以及获取所有职位信息的后台接口代码...

    最近在做松哥的微人事项目时,编写SpringBoot后台接口时遇到一个小问题,就是当比较两个String对象内容是否相等时,我第一次使用==没有得到预想到的结果,改成String的equals()方法就OK了。由于一直使用C和C++比较多,C++种的std::string类比较两个字符串内容是否相等时可以直接使用==操作符重载运算符。

    下面是根据职位名称获取职位信息以及获取所有职位信息的后台接口代码:

    package org.javaboy.vhr.service;

    import org.javaboy.vhr.mapper.PositionMapper;

    import org.javaboy.vhr.model.Position;

    import org.springframework.beans.factory.annotation.Autowired;

    import org.springframework.stereotype.Service;

    import java.util.List;

    /**

    * @Description

    * @作者 havealex

    * @微信号 havealex

    * @Github https://github.com/ccf19881030

    * @Gitee https://gitee.com/havealex

    * @博客 http://ccf19881030.blog.csdn.net

    * @ClassName PostionService

    * @Date 2020-09-21 22:33:33

    */

    @Service

    public class PositionService {

    @Autowired

    PositionMapper positionMapper;

    public Position getPositionByName(String name) {

    // 先获取所有的职位信息列表

    List positionList = positionMapper.getAllPositions();

    for (Position pos: positionList) {

    // 此处主要要使用equals()进行比较,不能使用==

    if (pos.getName().equals(name)) {

    return pos;

    }

    }

    return null;

    }

    // 获取所有的职位信息

    public List getAllPositions() {

    return positionMapper.getAllPositions();

    }

    }

    在Java如果用 == 对两个 数组类型变量 的内容 进行比较,则可能得到 “错误的” 结果

    因为String 在Java为引用数据类型,而不是基本数据(如int,float,char······)

    所以,如果要比较 两个String的内容,我们需要用到equals方法

    //equals方法的使用,内容相同返回true,反之返回false

    String str1 = "abc";

    String str2 = "abc";

    if(str1.equals(str2) )

    System.out.println("str1 与 str2 内容相同 ");

    else

    System.out.println("str1 与 str2 内容不相同 ");

    Java中,关于比较两个字符串是否相等的问题,经常会出现。下面将分析使用 ==(注意:Java中 = 是赋值运算符,==是比较是否相等) 和 equals()方法 来比较两个字符串相等的区别:

    简单一句话,==比较的是两个字符串的地址是否为相等(同一个地址),equals()方法比较的是两个字符串对象的内容是否相同(当然,若两个字符串引用同一个地址,使用equals()比较也返回true)。

    字符串比较之所以看起来复杂,是因为值类型和引用类型两种数据类型的区别:值类型,例如 int 类型,当定义并初始化两个 int 类型的变量,int i = 1;int j = i,这两个变量 i , j 存放的的就是1这个值,使用 if(i == j)判断时,自然返回 i 和 j 是相等的 。引用类型,例如字符串类型, 当定义并初始化两个字符串类型的变量,String s = “abc”; String s2 = s; 实际上是只创建了一个String类型的对象,该对象的值为abc,而 s 和 s2 都引用这一个对象。

    参考资料

    本文同步分享在 博客“雪域迷影”(CSDN)。

    如有侵权,请联系 support@oschina.cn 删除。

    本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

    展开全文
  • C++中如何判断两个字符串数组是否相等 使用函数strcmp(s1,s2) 当s<s2 返回负值 当s=s2 返回0 当s>s2返回正值 #include <iostream> #include <string.h> using namespace std; int main() { ...

    C++中如何判断两个字符串数组是否相等

    使用函数strcmp(s1,s2)

    当s<s2 返回负值
    当s=s2 返回0
    当s>s2返回正值

    #include <iostream>
    #include <string.h>
    using namespace std;
     
    int main() {
    	char s[] = "\a\b\1";
    	char s1[] = "\a\b\1";
    	if(strcmp(s,s1)==0){
    		cout << 1;
    	}
     
    	return 0;
    }
    

    输出结果为1

    展开全文
  • } int strcmp(char* p1, char* p2) //自已定义字符串比较函数 { int i; i = 0; while (*(p1 + i) == *(p2 + i)) if (*(p1 + i++) == '\0') return(0); //全部字符相同时返回结果0 return(*(p1 + i) - *(p2 + i));...

    我自己写的

    #include <iostream>
    using namespace std;
    int main() {
        int mystrcmp(char* p1, char* p2);
        char str1[20], str2[20], * p1, * p2;
        cout << "input two strings:" << endl;
        cin >> str1 >> str2;
        p1 = str1, p2 = str2;
        cout << "result:" << mystrcmp(p1, p2);
        return 0;
    }
    int mystrcmp(char* p1, char* p2) {
        int result = 0;
        for (;*p1 != '\0', *p2 != '\0';p1++, p2++)
        {
            if (*p1 == *p2) result = 0;
            else if (*p1 != *p2) {
                result = *p1 - *p2;
                break;
            }
        }
        return result;
    }

    老师给的参考答案

    #include <iostream>
    using namespace std;
    int main()
    {
        int strcmp(char* p1, char* p2);
        int m;
        char str1[20], str2[20];
        cout << "input two strings:" << endl;
        cin >> str1;
        cin >> str2;
        m = strcmp(str1, str2);
        cout << "result:" << m << endl;
        return 0;
    }
    
    int strcmp(char* p1, char* p2)         //自已定义字符串比较函数 
    {
        int i;
        i = 0;
        while (*(p1 + i) == *(p2 + i))
            if (*(p1 + i++) == '\0') return(0); //全部字符相同时返回结果0 
        return(*(p1 + i) - *(p2 + i));   //不相同时返回结果为第一对不相同字符的ASCII码的差值 
    }

    展开全文
  • C++ string字符串比较是否相等 可以使用compare 也可以使用"==" 1 使用比较运算符 == #include <iostream> #include <string> using namespace std; int main() { string a = "hello"; string b ...
  • 给你两个字符串数组 word1 和 word2 。如果两个数组表示的字符串相同,返回 true ;否则,返回 false 。 数组表示的字符串是由数组中的所有元素按顺序连接形成的字符串。 解题思路 用双指针分别指向两个数组的第一...
  • 仅执行一次字符串交换能否使两个字符串相等 题目描述 给你长度相等的两个字符串 s1 和 s2 。一次 字符串交换 操作的步骤如下:选出某个字符串中的两个下标(不必不同),并交换这两个下标所对应的字符。 如果对 其中...
  • C语言 strcmp() 函数用于对两个字符串进行比较(区分大小写)。头文件:string.h语法/原型:int strcmp(const char* stri1,const char* str2);参数 str1 和 str2 是参与比较两个字符串。strcmp() 会根据 ASCII 编码...
  • 即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇’\0’为止。如: “A”<”B” “a”>”A” “computer”>”compare” 特别注意:strcmp(const chars1,const chars2)...
  • C++字符串比较

    2021-10-04 09:27:19
    C++字符串 string 容器的操作都与 str有关,比如 strchar,strstr… 但这都是对于ascll的字符串。 如果想操作宽字符串,把str换成wcs就可以,比如wcswcs 宽字符串比较函数 wcswcs(L"cde", L"abc");
  • 一般编程语言中喜欢用==符号来判断java中两个字符串是否相等,例如c++c++提供了操作符的重载,所以可以重载==运算符来判断。但是由于java中,没有提供运算符重载,而且java中没有提供基本的string类型、也没有把...
  • #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <math.h> #include <string.h> int my_strcmp(char a[], char b[]) { int i,x; char *p1=a,*p2=b; while (*p1 !... .
  • 对于两个串A和B ,给出一种算法使得能够保证正确地求出最大的L值,使得A串中长为L的前缀与B串中长为L的后缀相等,并分析该算法的复杂度。 思路和复杂度分析 对于本题,将串s1与串s2合并得到字符串P,通过求串P的...
  • 检查两个字符串数组是否相等 问题: 给你两个字符串数组 word1 和 word2 。如果两个数组表示的字符串相同,返回 true ;否则,返回 false 。 数组表示的字符串 是由数组中的所有元素 按顺序 连接形成的字符串。 ...
  • C语言实现 根据要求比较字符串大小:先比较两个字符串的长度哪个长哪个就大;当长度相等时按字符比较比到第一个不相等的字符,字符大的字符串就大 如果长度相等每个字符也相等两个串就相等
  • 如果对 其中一个字符串 执行 最多一次字符串交换 就可以使两个字符串相等,返回 true ;否则,返回 false 。 示例 1: 输入:s1 = "bank", s2 = "kanb" 输出:true 解释:例如,交换 s2 中的第一个和最后一个字符...
  • 1662. 检查两个字符串数组是否相等 难度简单6 给你两个字符串数组word1和word2。如果两个数组表示的字符串相同,返回true;否则,返回false。 数组表示的字符串是由数组中的所有元素按顺序连接形成的字符串。 ...
  • 字符串的几种存储方式以及判断其相等 在C/C++中,字符串主要有4种存储方式: #include #include #include using namespace std; int main() { char str1[] = “abc”; //字符串存储在栈中 char str2[] = “abc”; ...
  • linux if 判断字符串是否相等

    千次阅读 2021-06-08 10:45:29
    种方法都可以。#!/bin/shecho -n "login:"read nameecho -n "password:"read passwdif [ "$name" = "aa" -a "$passwd" = "aaa" ];thenecho "right!"else echo "error"fi一。运行过程中出现过[: mi...
  • 文章目录string 与 字符串数组的区别string与字符串数组的不同string与字符串数组的相同点string类详解string的...不能直接把一个字符串数组赋值给另外一个数组,但是string可以 字符串数组的赋值拼接使用下面两个函数
  • #include<iostream>...//字符串比较是按字符的ASCII码进行对比 void test01()//字符串大小比较 { string str1("hello"); string str2("hello"); int ret = str2.compare(str1); if (ret
  • C++中,两个字符串比较的代码可以为:(string1==string2)但在java中,这个代码即使在两个字符串完全相同的情况下也会返回falseJava中必须使用string1.equals(string2)来进行判断eg:string s1="Hello";string s2=...
  • 格式:字符串A.compare(字符串B)(其中还可以指定子串比较,格式:A.compare(0,3,B,4,3)说明字符串A中的从下标为0开始的3个字符和字符串B中的第4个字符串开始的3个字符进行比较) 结果返回: 当字符串A和字符串B相等...
  • * 现在存在连个字符串str1和str2 * ①我们首先要做的是找到str1和str2哪个串更长,把长的存入str1中短的存入str2中 * (这样做的原因是:遍历短的字符串来找最短重复子串会更加省时间) * ②我们开始遍历短的...
  • 输入两个字符串。 Output 当字符串完全相同时输出0。不完全相同时,比较对应位置不同字符的ASCII值,前者大于后者输出1反之输出-1。 #include<stdio.h> #include<string.h> int m_strcmp(const char* ...
  • 输入一个字符串,判断是否为回文从键盘输入一个字符串,判断是否为回文(即对称),例如:输入123456765#include #include #define N 100 int main(){ char s[N]; int i,j,n,count=0; printf("Input a string:\n"); ...
  • 一,问题描述给定两个字符串,求解这两个字符串的最长公共子序列(Longest Common Sequence)。比如字符串1:BDCABA;字符串2:ABCBDAB则这两个字符串的最长公共子序列长度为4,最长公共子序列是:BCBA二,算法求解这...
  • 我想找到两个字符串的最长公共前缀.有没有办法循环我的最后几个if语句,以便我可以结束彼此不匹配的最后几个字符?System.out.println("Enter the first string: ");String s = input.nextLine();System.out.println...
  • strcmpstrcmp函数是字符串比较函数,是string compare的缩写。 该函数的头文件是#include 函数原型及其用法:int strcmp(const char *s1, const char *s2);... 说明: 字符串的比较规则是将两个字符串自左向右...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 66,002
精华内容 26,400
关键字:

c++比较两个字符串相等

c++ 订阅