精华内容
下载资源
问答
  • C语言:找出s1是否存在字符串s2(C language: find out if string s2 exists in s1)是否有任何C函数来检查s1是否存在字符串s2s1: "CN1 CN2 CN3"s2: "CN2" or "CG2"s1是固定的,我想检查s1是否存在s2的变体...

    C语言:找出s1中是否存在字符串s2(C language: find out if string s2 exists in s1)

    是否有任何C函数来检查s1中是否存在字符串s2?

    s1: "CN1 CN2 CN3"

    s2: "CN2" or "CG2"

    s1是固定的,我想检查s1中是否存在s2的变体。

    我使用的是C而不是C ++。

    Is there any C function to check if string s2 exists in s1?

    s1: "CN1 CN2 CN3"

    s2: "CN2" or "CG2"

    s1 is fixed, and I want to check whether variants of s2 exists in s1 or not.

    I am using C not C++.

    原文:https://stackoverflow.com/questions/16569739

    更新时间:2019-12-14 13:00

    最满意答案

    你可以使用strstr 。 请参阅strstr文档

    function strstr

    char * strstr(const char * str1,const char * str2);

    查找str指向的字节字符串中第一次出现的字节字符串substr。

    示例用法如下所示:

    const char *s1 = "CN1 CN2 CN3";

    if (strstr(s1, "CN2") == NULL) //^^!=NULL means exist

    {

    //does not exist

    }

    You can use strstr. See strstr documentation

    function strstr

    char * strstr ( const char * str1, const char * str2 );

    Finds the first occurrence of the byte string substr in the byte string pointed to by str.

    An example usage looks like the following:

    const char *s1 = "CN1 CN2 CN3";

    if (strstr(s1, "CN2") == NULL) //^^!=NULL means exist

    {

    //does not exist

    }

    2013-10-16

    相关问答

    您遇到的是处理含有签名和无符号数量的表达式时,C中出现的一些特殊行为。 当执行一个操作数被签名并且另一个是无符号的操作时,C将隐式地将有符号的参数转换为无符号,并执行假定数字为非负数的操作。 这种惯例往往导致诸如等关系运算符的非直观行为。 关于你的帮助函数,请注意,由于strlen返回类型size_t (无符号数量),差异和比较都使用无符号算术计算。 当s1小于s2 ,差值strlen(s1) - strlen(s2)应为负数,而是变大,无符号数大于0 。 从而, return strlen

    ...

    您需要使用单独的公式计算s1和s2。 使用代数表达式,这意味着保存s1和s2值的单元格需要分别具有以下公式。 s1: =if(Q>1.5,a,min(a,C))

    s2: =if(Q>1.5,b,min(a+Q,C)

    在工作表中,这可以翻译如下(例如,我假设计算C只是'a + b')。 You need to calculate s1 and s2 using separate formulas for each. Using your algebraic expression, th

    ...

    假设与潜在的字符串长度相比,字符集很小且有限,这是合理的。 因此,例如处理8位字符(在粗略的C ++伪代码中): bool in_a[256] = { false };

    bool in_b[256] = { false };

    for (int i = 0; i < a.size(); ++i)

    in_a[a[i]] = true;

    for (int i = 0; i < b.size(); ++i)

    in_b[b[i]] = true;

    // and in_a and in_b

    f

    ...

    你可以使用strstr 。 请参阅strstr文档 function strstr char * strstr(const char * str1,const char * str2); 查找str指向的字节字符串中第一次出现的字节字符串substr。 示例用法如下所示: const char *s1 = "CN1 CN2 CN3";

    if (strstr(s1, "CN2") == NULL) //^^!=NULL means exist

    {

    //does not exist

    ...

    因为new总是创建一个新对象而没有机会从池中返回一个对象? 它是一个构造函数,而不是像intern()这样的工厂方法。 Because new always creates a new object and has no chance of returning one from a pool? It's a constructor, not a factory method like intern().

    Line5: System.out.println("hey s1==s2:"+s1==s2);

    由于运算符优先级"hey s1==s2:"+s1先解析然后再比较s2导致错误。 给予最高的优先权来解决它以纠正。 括号的优先级最高。 System.out.println("hey s1==s2:"+(s1==s2));

    Line5: System.out.println("hey s1==s2:"+s1==s2);

    Because of the operator precedence "hey

    ...

    功能齐全的例子如下。 F5然后点击ENTER改变状态。 在States课程中,您可以定义您的概率和状态。 在我的代码中,我假设路由是互斥的(它们的组合概率永远不会超过1)。 如果不是这样,我已经标记了要改变的代码段。 namespace RandomStatesProgram

    {

    class State

    {

    public string Name;

    private bool current;

    public bool Current

    ...

    您的查询是否可能在S0数据库本身提供的资源限制内运行良好,因此更高级别的DB不会对您有任何帮助? 监视此问题的最佳方法是在运行查询时测量数据库的DTU百分比利用率。 如果S0的DTU利用率<100%,则可能无法从该查询的更高级别的DB版本中获益。 这是一个博客,提供有关监视资源使用情况和适当调整数据库性能级别的更多信息。 http://azure.microsoft.com/blog/2014/09/11/azure-sql-database-introduces-new-near-real-ti

    ...

    C语法严格区分赋值和初始化。 对于初始化,很明显右侧的类型应该是什么:声明的对象的类型。 所以初始化符号是明确的; { a, b, c }是声明顺序中的字段。 对于任务,事情不太清楚。 赋值表达式X = Y首先计算子表达式( X和Y ),查看它们的类型,然后在可能的情况下,从Y的类型到X的类型进行必要的转换。 形式{ a, b, c }的表达式没有类型,因此该机制不起作用。 yoones在他的答案中使用的构造是另一种动物,称为复合文字。 这是一种创建指定类型的未命名辅助对象的方法。 您可以在初始化

    ...

    private static String a = "war";

    private static String b = "Its awesome being a programmer".replace(" ","");

    private static String answer = "waaarrrIbeeeeggimmmnoopsst";

    public static void main(String[] args) {

    List characters = new Array

    ...

    展开全文
  • 判断字符串s1是否为字符串s2的重排子串,如s1=“aabcd”,s2=“sdabcda”,由于s2的子串“abcda”重新排序后可以为aabcd,因此s1是s2的重排子串;如s1=“aabcd”,s2=sdabcdsa“”,s2中任意子串重排后均不能和s1...

    判断字符串s1是否为字符串s2的重排子串,如s1=“aabcd”,s2=“sdabcda”,由于s2的子串“abcda”重新排序后可以为aabcd,因此s1是s2的重排子串;如s1=“aabcd”,s2=sdabcdsa“”,s2中任意子串重排后均不能和s1一样,因此s1不是s2的重排子串。
    题意已经明白,下面就是具体的实现,由于找的是子串之间的关系,因此首先想到的是通过java的subString方法对s2进行截取,截取后的子串之间再做比较,但是子串之间由于顺序不一致,因此不能通过遍历的方法来进行比较,但是子串之间判断是否为重排子串的标准为重排后是否相等,实际为子串包含的字符以及次数是否完全一致,因此接下啦就是看子串之间的字符以及出现次数是否相等了,数据结构中map比较适合用做这种,用字符作为key,出现次数作为value,如果两个map相等,则可以认为两个字符串的字符以及出现次数一样,下面呈上代码:

        public static boolean containString(String s1,String s2){
            int len=s1.length();
            Map<String,Integer> map1=new HashMap<String, Integer>();
            Map<String,Integer> map2=new HashMap<String, Integer>();
            for(int i=0;i<s2.length()-len;i++){
                //截取子串
                String s=s2.substring(i,i+len);
                for(int j=0;j<s.length();j++){
                    String str=String.valueOf(s.charAt(j));
                    String str1=String.valueOf(s1.charAt(j));
                    //将s,s1字符以及出现的次数放入map1,map2中
                    if(map1.get(str)==null){
                        Integer m=new Integer(0);
                        map1.put(str,m+1);
                    }
                    else {
                        map1.put(str,map1.get(str)+1);
                    }
                    if(map2.get(str1)==null){
                        Integer n=new Integer(0);
                        map2.put(str1,n+1);
                    }
                    else {
                        map2.put(str1,map2.get(str1)+1);
                    }
    
                }
                //判断两个map是否相等
                if(map1.equals(map2)){
                    return true;
                }
                //如果判断不相等,则清空map,进入下次循环,这里非常重要,否则map在下面的循环中会累计叠加字符及次数
                else {
                    map1.clear();
                    map2.clear();
                }
            }
            return false;
        }
    
    展开全文
  • strlen(a)=3,b是数组,元素在内存中是连续存储的,而strlen函数要求字符串要以’\0’结尾,但是b数组中没有’\0’,所以strlen会继续向后查找,无论什么时候停止,strlen(b)的值一定会大于a,所以输出结果为a<...
    char a[]="xyz",b[]={'x','y','z'};
    if(strlen(a)>strlen(b))
    printf("a>b\n");
    else
    printf("a<=b\n");
    

    strlen(a)=3,b是数组,元素在内存中是连续存储的,而strlen函数要求字符串要以’\0’结尾,但是b数组中没有’\0’,所以strlen会继续向后查找,无论什么时候停止,strlen(b)的值一定会大于a,所以输出结果为a<=b

    展开全文
  • 如何用指针判断两个字符串s2是否s1的子串(s1的长度大于s2的长度),并输出总共出现的次数。 #include<iostream> #include<string.h> using namespace std; int main() { char *p1, *p2, s1[20], s2...

    如何用指针判断两个字符串s2是否为s1的子串(s1的长度大于s2的长度),并输出总共出现的次数。

    #include<iostream>
    #include<string.h>
    using namespace std;
    
    int main()
    {
    	char *p1, *p2, s1[20], s2[10];
    	int i,l1,l2,k=0;
    	p1= s1;p2= s2;
    	cout<<"please input s1:"<<endl;
    	cin.getline(p1,20);
    	cout<<"please input s2:"<<endl;	
    	cin.getline(p2,10);
    	l1= strlen(p1);
    	l2= strlen(p2);
    	for(i=0;i<=l1-l2;i++)
    	{
    		if (p1[i])
    		{
    			if ((p2[i] == p1[i]) && (i + 1 == l2))
    			{
    				k = k + 1;
    				p1++;
    				i = -1;//父字符串整体右移一个单位并重新进行匹配,相当于子字符串右移一个单位继续匹配
    			}
    			else if (p2[i] != p1[i])
    			{
    				p1++;
    				i = -1;
    			}
    		}
    	}
    	cout << '\n';
    	if(k>0)
    	cout<<"s2 is s1's sonstring"<<'\n'<<"times of s2 appearing in s1:"<<' '<<k<<endl;
    	else
    	cout<<"s2 is not s1's sonstring"<<endl;
    	return 0;
    
    展开全文
  • 给定两个字符串s1s2判断其中一个字符串重新排列字母后能否变成另外一个?
  • 设p1指向字符串s1,p2指向字符串s2。要求当s1=s2时,返回值为0;若s1!=s2,返回它们二者第1个不同字符的ASCII码差值(如"BOY"与"BAD",第2个字母不同,"O"与"A"之差为79-65=14)。如果s1>s2,则输出正值;如果s1...
  • 在Java中,可以使用“==”来进行判断字符串是否相等。 示例: String s1="Hello"; String s2="Hello"; //输出返回值 System.out.println(s1==s2); 这时,我们如果运行一下,会发现会输出...
  • 给定一个字符串s1,我们可以把它递归地分割成两个非空子字符串,从而将其表示为二叉树。 下图是字符串s1="great"的一种可能的表示形式。 great / \ gr eat / \ / \ g r e at / \ a t 在扰乱这个字符串的...
  • 给出字符串s1和s2,只使用一次isSubstring就能判断s2是否是s1的旋转字符串, 请写出代码。旋转字符串:”waterbottle”是”erbottlewat”的旋转字符串。 解答 题目说我们使用一次isSubstring函数就可以判断s2...
  • 判断一个字符串是否为另外一个字符串旋转之后的字符串。  例如:给定s1 =AABCD和s2 = BCDAA,返回1,给定s1=abcd和s2=ACBD,返回0.  AABCD左旋一个字符得到ABCDA  AABCD左旋两个字符得到BCDAA  AABCD右旋一个...
  • C语言程序设计 (第二版) 练习2-5 个人设计练习 2-5 编写函数 any(s1, s2),将字符串s2中的任一字符在字符串s1中第一次出现的位置作为结果返回。如果s1中不包含s2中的字符,则返回-1。代码块#include &amp;lt;...
  • 题目 Assume you have a method isSubstring which checks if one word is a substring of ... Given two strings, s1 and s2, write code to check if s2 is a rotation of s1 using only one call to isSubstr
  • Java字符串比较大小,A字符串比B大的比较...使用if语句和comepareTo()方法,判断字符串s1是否大于s2。 程序代码: class StringExample { public static void main(String args[ ]) { String s1=new String("你"),
  • 头文件:#include <string.h> 定义函数:int strcasecmp (const char *s1, const char *s2); 函数说明:strcasecmp()用来比较参数s1 ...s1 长度大于s2 长度则返回大于0 的值,s1 长度若小于s2 长度则返回小...
  • 判断字符串是否回文

    千次阅读 2010-02-27 20:12:00
    //调用string的比较操作函数返回0即相等,1为小于,-1为大于相当于equal()函数功能判断相等 if(x==0) { cout<<"the str s1==s2,so the str is huwen!"; } else { cout!"; } }
  • 给出字符串s1和s2,只使用一次isSubstring就能判断s2是否是s1的旋转字符串, 请写出代码。旋转字符串:"waterbottle"是"erbottlewat"的旋转字符串。 解答 题目说我们使用一次isSubstring函数就可以判断s2是否...
  • 给出字符串s1和s2,只适用一次Contains就能判断s2是否是s1的旋转字符串, 请写出代码 测试用例  “waterbottle”是"erbottlewat"的旋转字符串。 解答  题目说我们使用一次Contains函数就可以判断s2是否是s1的...
  • 在vb.net可以使用InStr(a,b)方法来判断字符串a的内容是否包含字符串b的内容。InStr(a, b) 如果a中包含有b则InStr(a, b) 返回一个大于0的值,如果不含有b则返回0。可以通过返回值来判断。 c#中可以使用 IndexOf...
  • 给出字符串s1和s2,只使用一次isSubstring就能判断s2是否是s1的旋转字符串, 请写出代码。旋转字符串:”waterbottle”是”erbottlewat”的旋转字符串。 解答 题目说我们使用一次isSubstring函数就可以判断s2...
  • 题目: 判断一个字符串是否为另外一个字符串旋转之后的字符串。例如:给定s1 = abcdef和s2 = cdefab,返回1,给定s1=abcd和s2=ACBD,返回0.abcdef左旋一个字符得到bcdefaabcdef左旋两个字符得到cdefab abcdef...
  • 判断字符串相等

    千次阅读 2016-09-18 22:10:34
    因为在C语言中,char数组(C风格字符串)并不支持直接使用==来判断字符串相等,需要调用函数才能达到目的。 (5)至于string,跟(1)差不多的原理,而且C++的string本来就支持直接使用“==”来比较两个字符串...
  • 41.判断一个字符串是否为另外一个字符串旋转之后的字符串。 例如:给定s1 =AABCD和s2 = BCDAA,返回1,给定s1=abcd和s2=ACBD,返回0. AABCD左旋一个字符得到ABCDA AABCD左旋两个字符得到BCDAA AABCD右旋一个字符得到...
  • 题目:判断两个字符串是否由相同字符组成,由相同字符组成的条件是:长度相同,且所含的字符个数相同,eg:s1 = ”adfgg“;s2 = ”gfdga“ ,我们称s1s2是匹配的。 /* 法一:假设全为ASCII码,则字符的范围为0-...
  • 字符串练习集合

    千次阅读 2020-05-06 08:52:28
    1. 判断字符串s1是否是字符串s2的子串 编写一个函数judge,判断字符串s1(长度小于10)是否是字符串s2(长度小于10)的子串。如果s1是s2的子串,函数返回0;否则,返回-1。 样例输入: asdfg ...
  • 给你两个字符串 s1s2 ,它们长度相等,请你检查是否存在一个 s1 的排列可以打破 s2 的一个排列,或者是否存在一个 s2 的排列可以打破 s1 的一个排列。 字符串 x 可以打破字符串 y (两者长度都为 n )需满足对于...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,237
精华内容 10,494
关键字:

判断字符串s1是否大于s2