精华内容
下载资源
问答
  • 字符串比较

    千次阅读 2018-07-19 23:47:00
    比较两个字符串s1和s2的大小,如果s1>s2,则输出一个正数;若s1=s2,则输出0;若s1<s2,则输出一个负数。 要求:不用strcpy函数;两个字符串用gets函数读入。 例如:"A"与"C"...

     

    题目描述

    比较两个字符串s1和s2的大小,如果s1>s2,则输出一个正数;若s1=s2,则输出0;若s1<s2,则输出一个负数。

    要求:不用strcpy函数;两个字符串用gets函数读入。

    例如:"A"与"C"相比,由于"A"<"C",应输出负数,同时由于"A"与"C"的ASCII码差值为2,因此应输出"-2"。

    同理:"And"和"Aid"比较,根据第2个字符比较的结果,"n"比"i"大5,因此应该输出"5"

    输入

    输入2行字符串

    输出

    一个整数,表示这两个字符串 比较的差值,单独占一行。

    样例输入

    And
    Aid
    

    样例输出

    5
    #include <stdio.h>
    int main(){
    	char str[2][100];
    	int i;
    	for(i=0;i<2;i++){
    		gets(str[i]);
    	}
    	for(i=0;str[0][i]!='\0'&&str[1][i]!='\0';i++){
    		if(str[0][i]!=str[1][i]){
    			printf("%d",str[0][i]-str[1][i]);
    			break;
    		}
    	}
    	return 0;
    }

     

    展开全文
  • 三、字符串比较 四、字符串截取 1、一种简单而又机智的方法–strncpy  strncpy函数是拷贝N个字符到另一个字符数组中的库函数。利用它的性质可以达到截取字符串的目的:  首先:从源串中拷贝3个字符到终串中去...

     在实际的应用当中,字符和字符串的操作是最常用的技能。总结下来,提升能力。

    一、字符串拷贝

    1、memcpy

    2、strcpy

    区别


    二、字符串查找


    三、字符串比较


    四、字符串截取

    1、一种简单而又机智的方法–strncpy

     strncpy函数是拷贝N个字符到另一个字符数组中的库函数。利用它的性质可以达到截取字符串的目的:
     首先:从源串中拷贝3个字符到终串中去(不能拷贝4个,否则会出现乱码!)

    char dest[4] = {0};
    char src[] = "123456789";
    strncpy(dest, src, 3);
    puts(dest);
    

    输出:

    123
    

     然后尝试,在源串+3,再拷贝到终串中去。

    char dest[4] = {0};
    char src[] = "123456789";
    strncpy(dest, src+3, 3);
    puts(dest);
    

    输出:

    456
    

    最后,一个最简单的字符截取方法就出来了。

    2、另外的方法

    (1)从左边截取n个字符
    char *left(char *dst,char *src,int n)
    {
    	char *p=src;
    	char *q=dst;
    	int len=strlen(src);
    	if(n>len) n=len;
    	while(n--) *(q++)=*(p++);
    	*(q++)='\0';
    	return dst;
    }
    

    (2)从右边截取n个字符

    char *right(char *dst,char *src,int n)
    {
    	char *p=src;
    	char *q=dst;
    	int len=strlen(src);
    	if(n>len) n=len;
    	p+=(len-n);
    	while(*(q++)=*(p++));
    	return dst;
    }
    

    (3)子字符串截取,长度,开始

    char *substring(char *dst,char *src,int start,int len)
    {  
    	char *p=dst;  
    	char *q=src;  
    	int length=strlen(src); 
    	if(start>=length||start<0) 
    		return NULL;  
    	if(len>length) 
    		len=length-start; 
    	q+=start;
    	while(len--)  
    	{   
    		*(p++)=*(q++); 
    	}  
    	*(p++)='\0';  
    	return dst;
    }
    
    展开全文
  • 目录字符串比较字符串长度字符串拷贝字符串拼接 字符串比较 比较两个字符串指针:如果两个字符串相等,返回0 strcmp(区分大小写) //多字节 stricmp(不区分大小写) //多字节 wcscmp(区分大小写) //宽字节 wcsicmp...

    字符串比较

    比较两个字符串指针:如果两个字符串相等,返回0

    • strcmp(区分大小写) //多字节
    • stricmp(不区分大小写) //多字节
    • wcscmp(区分大小写) //宽字节
    • wcsicmp(不区分大小写) //宽字节
    • _tcscmp();(区分大小写) //多字节宽字节皆可
    • _tcsicmp();(不区分大小写) //多字节宽字节皆可
    • CString::Compare();(区分大小写)
    • CString::CompareNoCase();(不区分大小写)
    int wcscmp(
       const wchar_t *string1,
       const wchar_t *string2
    );
    
    int wcsicmp(
    	 const wchar_t * _Str1,
    	 const wchar_t * _Str2
    );
    

    字符串长度

    • strlen(); //获取多字节字符串长度,不包含 ‘/0’。
    • wcslen(); //获取宽字节字符串长度,不包含 ‘/0’。
    • _tcslen() //获取宽字节和多字节字符串长度,不包含 ‘/0’。
    • CString::GetLength();
    size_t wcslen(
       const wchar_t *str
    );
    

    字符串拷贝

    • strcpy(); //多字节字符串拷贝
    • wcscpy(); //宽字节字符串拷贝
    • _tcscpy(); //两者皆可字符串拷贝
    • CString::operator =
    wchar_t *wcscpy(
       wchar_t *strDestination,
       const wchar_t *strSource
    );
    

    字符串拼接

    • strcat(); //多字节字符串拼接
    • wcscat(); //宽字节字符串拼接
    • _tcscat(); //两者皆可字符串拼接
    • CString::operator +=
    wchar_t *wcscat(
       wchar_t *strDestination,
       const wchar_t *strSource
    );
    

    字符串转换

    USES_CONVERSION;//定义转换宏
    
    T2A:wchar_t->char
    A2T:char->wchar_t
    
    展开全文
  • 两个字符串比较

    万次阅读 2018-03-02 14:36:00
    两个字符串比较大小: 一、可以用compareTo()方法,另外还有compareToIgnoreCase(String) 忽略大小写及 compareTo(object string)这些 方法返回值是int,以compareTo()方法为例: 1 .如果字符串相等返回值为0...

    两个字符串比较大小:
        一、可以用compareTo()方法,另外还有compareToIgnoreCase(String) 忽略大小写及 compareTo(object string)这些 方法返回值是int, 以compareTo()方法为例:
         1 .如果字符串相等返回值为0,不等返回其他数值。
    比较方法是先比较对应字符的大小(Ascall吗顺序),从第一个字母开始比较。
         2.如果第一个字符和参数的第一个字符不等,结束比较,返回他们之间的差值(ascii码值)
                   (负值前字符串的值小于后字符串,正值前字符串大于后字符串)
         3.如果第一个字符和参数的第一个字符相等,则以第二个字符和参数的第二个字符做比较,

    以此类推,直至比较的字符或被比较的字符有一方全比较完,这时就比较字符的长度. 

    例如:

                            String s1 = "abc"; 
    			String s2 = "abcd"; 
    			String s3 = "abcdfg"; 
    			String s4 = "1bcdfg"; 
    			String s5 = "cdfg"; 
    			System.out.println( s1.compareTo(s2) ); // -1 (前面相等,s1长度小1) 
    			System.out.println( s1.compareTo(s3) ); // -3 (前面相等,s1长度小3) 
    			System.out.println( s1.compareTo(s4) ); // 48 ("a"的ASCII码是97,"1"的的ASCII码是49,所以返回48) 
    			System.out.println( s1.compareTo(s5) ); // -2 ("a"的ASCII码是97,"c"的ASCII码是99,所以返回-2)

    二、还可以用“==”和.equals()方法判断大小:

    1.“==”是一个判断相等的运算符,如果两边是基本数据类型,它判断的是值;如果两边是复合型数据类型(类类型),它判断的是地址;地址相同,内容一定相同,地址不同,内容不一定相同。

    2..equals() 方法只能判断复合型数据类型,由于继承Object类,默认判断的是两边在内存的地址,判断结果和“==”一样,但在一些其他的类库中equals()被重写,例如String,Integer,Data等类中有其自身的实现,比较内容就不是地址了。

    例如:

    String str1 = new String("hello");
    String str2 = "hello";
     
    System.out.println("str1==str2: " + (str1==str2));  \\false
    System.out.println("str1.equals(str2): " + str1.equals(str2));  \\true

    当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false。

    但equals() 在String中被重写过了,判断的是内容,不在是内存中的地址,所以是true。

    但是String比较特殊,因为我们都知道jvm把内存分为3个区,分别是方法区,堆区和栈区。而在方法区中维护者一个String常量池,池中用来存放运行时产生的各种字符串,并且池中的内容不重复。而一般对象不在这个池中,对象放在堆里。这就需要分析String的创建方式:

    1. 当使用任何方式来创建一个字符串对象str=“X”时,Java运行时(运行中JVM)会拿着这个X在String池中找是否存在内容相同的字符串对象,如果不存在,则在池中创建一个字符串str,否则,不在池中添加。

    2.Java中,只要使用new关键字来创建对象,则一定会(在堆区或栈区)创建一个新的对象。

    3 .使用直接指定或者使用纯字符串串联来创建String对象,则仅仅会检查维护String池中的字符串,池中没有就在池中创建一个,有则罢了!但绝不会在堆栈区再去创建该String对象。

    4 使用包含变量的表达式来创建String对象,则不仅会检查维护String池,而且还会在堆栈区创建一个String对象。

    例如:

    String str2 = "hello";
    String str3 = "hello";
    System.out.println("str3==str2: " + (str3==str2));  \\true
    System.out.println("str3.equals(str2): " + str3.equals(str2));  \\true

    true的原因是hello都是从常量池中取出来的,但你new出来的不管常量池中有没有都会新建一个,地址就不一样了。

    展开全文
  • 比较str1和str2的大小,不使用字符串比较函数。字符比较时使用指针取内容表示。若str1=str2,输出:0;若str1&amp;amp;gt;str2,输出:1;若str1&amp;amp;lt;str2, 输出:-1 代码: #include&amp;amp;...
  • 一、字符串与数字比较 MySQL字符串和数字比较的坑:比较时会把字符串类型转成整数类型,从首字母开始,遇到非数字类型后终止。 原文: Comparison operations result in a value of1(TRUE),0(FALSE), orNULL. ...
  • Qt 字符串比较

    千次阅读 2018-11-10 08:46:53
    Qt 字符串比较
  • js字符串比较

    千次阅读 2019-01-31 17:08:34
    1. 纯字符串比较,转换成ASCII码在进行比较; 2. 纯数字和数字字符串相比较,则将字符串数字隐式转换为数字再进行比较; 3. 纯数字和飞数字字符串比较,都返回false; 验证一下:  1. 对于...
  • 字符串比较 正如在C++中可以用3种方法(字符数组、字符串(类)、字符指针)访问一个字符串,比较字符串(内容)自然也有这三种基本形式。废话不多说,上代码,一看便知 #include <iostream> #include <string....
  • Python的字符串比较

    万次阅读 2017-09-01 16:32:50
    Python的字符串比较
  • java实现字符串比较

    万次阅读 多人点赞 2019-07-25 19:39:18
    标题:字符串比较 我们需要一个新的字符串比较函数compare(s1, s2). 对这个函数要求是: 1. 它返回一个整数,表示比较的结果。 2. 结果为正值,则前一个串大,为负值,后一个串大,否则,相同。 3. 结果的绝对值...
  • 字符串比较原理(strcmp,string)

    千次阅读 多人点赞 2019-10-29 10:49:09
    字符串比较分为两种情况,一种是单个字符比较大小,一种是多个字符构成的字符串整体比较大小。 字符与字符串比较原理: 字符串与字符比较原理其实都是比较单个字符的ASCII码值。 如果单纯比较长度,直接调用类似于...
  • C语言中字符串比较

    千次阅读 2020-11-02 13:18:19
    在单片机串口实现字符串命令解析这篇文章中分析了在串口通信中如何去解析字符串命令,这篇文章就来讨论下字符串比较的方法都有哪些? 说起比较运算,肯定第一时间想到了C语言中关于比较的相关运算符 “>、<...
  • 简单字符串比较

    千次阅读 2016-12-24 15:49:13
    请使用字符串比较函数,比较两个字符串的大小,并按要求输出比较后的结果。字符串最长不超过15个字符。 输入两个字符串str1和str2,如果第一个字符串与第二个字符串相等,输出str1=str2,如果第一个字符串大于第二...
  • golang 字符串比较是否相等

    万次阅读 2017-03-01 16:17:47
    golang字符串比较的三种常见方法fmt.Println("go"=="go") fmt.Println("GO"=="go")fmt.Println(strings.Compare("GO","go")) fmt.Println(strings.Compare("go","go"))fmt.Println(strings.EqualFold("GO","go"))...
  • kotlin字符串比较

    千次阅读 2018-04-16 16:42:12
    kotlin字符串比较:==和equals()函数进行字符串的比较。简单实例:fun main(args: Array&lt;String&gt;) { var str1="小朱" var str2="小郭" var str3="Andy" var str4...
  • strcmp字符串比较

    千次阅读 2018-11-20 20:08:56
    4、strcmp字符串比较,比较字符串str1和str2是否相同。如果相同则返回0; 如果不同,在不同的字符处如果str1的字符大于str2的字符,则返回1,否则返回-1 using namespace std; #include&lt;iostream&gt; #...
  • 首先明白字符串比较大小的原理,简而言之,就是两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇’\0’为止因此比较字符串大小时,应比较等长度的,不同长度的比较也没意义,除非...
  • PHP字符串比较函数

    千次阅读 2018-07-29 22:19:25
    PHP字符串比较函数
  • android 字符串比较

    千次阅读 2015-07-28 09:40:35
    android 字符串比较
  • C++字符串比较大小的两种方法

    万次阅读 2017-05-08 12:55:25
    c++字符串比较大小的两种方法 一、.compare函数的使用
  • c++ string字符串比较

    万次阅读 2018-03-29 18:59:38
    支持 欢迎关注公众号谁吃薄荷糖,主要记录日常中觉得有意思的事情以及分享开发实践,保持深度和专注度,喜欢的点击右下角的在看哦。
  • java字符串比较可以用.contains()方法和.indexOf()方法,其中.contains()方法是对.indexOf()的封装,所以性能上肯定是.indexOf()要快些. .contains()方法源码如下:  /**  * Returns true if and only if this ...
  • Linux Shell日期比较,数值比较和字符串比较及相关 说明: 1. 把字符串当成整型进行比较,由于abcd等字符对不上0123当程序尝试去转成二进制时无法完成转换,所以用于数值比较的运算不能用于字符串比较;但是把整型...
  • 我想做的是比较两个文件种不同的地方,我的办法是把他们以字符串的形式都出来存到变量a和b里面,然后进行字符串比较,这个思路没错的吧?现在想请教一下如何比较两个字符串并把他们不同的地方打印出来?求个demo~~~~...
  • 蓝桥杯:字符串比较

    千次阅读 2018-07-22 00:16:17
    独立实现标准字符串库的strcmp函数,即字符串比较函数,从键盘输入两个字符串,按字典序比较大小,前者大于后者输出1,前者小于后者输出-1,两者相等输出0。  输入 无 输出 无 样例输入 apple one 样例...
  • 字符串比较大小

    千次阅读 2018-06-10 14:47:10
    字符串比较大小 时间比较大小 一般从后台获取的时间数据格式为 “2018-06-10”、”2018-6-10”、”2018/06/10”、”2018/6/10” 之前的误区是直接拿来数据进行比较 if(&amp;quot;2018-06-10&amp...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 89,078
精华内容 35,631
关键字:

字符串比较