-
字符串比较
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; }
-
C语言--字符串拷贝、字符串查找、字符串比较、字符串截取
2018-09-27 01:11:40三、字符串比较 四、字符串截取 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; }
-
C++:CString字符串比较、字符串长度、字符串拷贝、字符串拼接
2019-10-15 10:33:43目录字符串比较字符串长度字符串拷贝字符串拼接 字符串比较 比较两个字符串指针:如果两个字符串相等,返回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出来的不管常量池中有没有都会新建一个,地址就不一样了。
-
c语言,不用字符串比较函数比较字符串
2018-12-30 20:07:43比较str1和str2的大小,不使用字符串比较函数。字符比较时使用指针取内容表示。若str1=str2,输出:0;若str1&amp;gt;str2,输出:1;若str1&amp;lt;str2, 输出:-1 代码: #include&amp;... -
MySQL 字符串和数值比较、字符串与字符串比较
2020-05-29 10:59:50一、字符串与数字比较 MySQL字符串和数字比较的坑:比较时会把字符串类型转成整数类型,从首字母开始,遇到非数字类型后终止。 原文: Comparison operations result in a value of1(TRUE),0(FALSE), orNULL. ... -
Python的字符串比较
2017-09-01 16:32:50Python的字符串比较 -
Qt 字符串比较
2018-11-10 08:46:53Qt 字符串比较 -
js字符串比较
2019-01-31 17:08:341. 纯字符串比较,转换成ASCII码在进行比较; 2. 纯数字和数字字符串相比较,则将字符串数字隐式转换为数字再进行比较; 3. 纯数字和飞数字字符串比较,都返回false; 验证一下: 1. 对于... -
C++中的字符串比较——字符数组、字符串(类)、字符指针
2019-08-04 20:31:00字符串比较 正如在C++中可以用3种方法(字符数组、字符串(类)、字符指针)访问一个字符串,比较字符串(内容)自然也有这三种基本形式。废话不多说,上代码,一看便知 #include <iostream> #include <string.... -
java实现字符串比较
2019-07-25 19:39:18标题:字符串比较 我们需要一个新的字符串比较函数compare(s1, s2). 对这个函数要求是: 1. 它返回一个整数,表示比较的结果。 2. 结果为正值,则前一个串大,为负值,后一个串大,否则,相同。 3. 结果的绝对值... -
golang 字符串比较是否相等
2017-03-01 16:17:47golang字符串比较的三种常见方法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"))... -
51】实现字符串拷贝strcpy ,字符串拼接strcat ,字符串子串查找strstr ,单字符查找strchr ,字符串比较strcmp
2019-04-30 14:56:23目录 strcpy():字符串拷贝 ...strcmp():字符串比较 strcpy():字符串拷贝 strcpy函数的原型为:char* strcpy(char* _Dest, const char* _Source); strcpy只有两个参数,即遇到‘\0’结束复制 strcp... -
c++ string字符串比较
2018-03-29 18:59:38支持 欢迎关注公众号谁吃薄荷糖,主要记录日常中觉得有意思的事情以及分享开发实践,保持深度和专注度,喜欢的点击右下角的在看哦。 -
简单字符串比较
2016-12-24 15:49:13请使用字符串比较函数,比较两个字符串的大小,并按要求输出比较后的结果。字符串最长不超过15个字符。 输入两个字符串str1和str2,如果第一个字符串与第二个字符串相等,输出str1=str2,如果第一个字符串大于第二... -
kotlin字符串比较
2018-04-16 16:42:12kotlin字符串比较:==和equals()函数进行字符串的比较。简单实例:fun main(args: Array<String>) { var str1="小朱" var str2="小郭" var str3="Andy" var str4... -
strcmp字符串比较
2018-11-20 20:08:564、strcmp字符串比较,比较字符串str1和str2是否相同。如果相同则返回0; 如果不同,在不同的字符处如果str1的字符大于str2的字符,则返回1,否则返回-1 using namespace std; #include<iostream> #... -
PHP字符串比较函数
2018-07-29 22:19:25PHP字符串比较函数 -
android 字符串比较
2015-07-28 09:40:35android 字符串比较 -
字符串比较原理(strcmp,string)
2019-10-29 10:49:09字符串比较分为两种情况,一种是单个字符比较大小,一种是多个字符构成的字符串整体比较大小。 字符与字符串比较原理: 字符串与字符比较原理其实都是比较单个字符的ASCII码值。 如果单纯比较长度,直接调用类似于... -
两个字符串比较大小--char[ ]和string字符串
2019-03-04 18:55:05首先明白字符串比较大小的原理,简而言之,就是两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇’\0’为止因此比较字符串大小时,应比较等长度的,不同长度的比较也没意义,除非... -
C++字符串比较大小的两种方法
2017-05-08 12:55:25c++字符串比较大小的两种方法 一、.compare函数的使用 -
java 字符串比较(比较指定字符串中是否包含指定字符)
2016-11-09 23:35:04java字符串比较可以用.contains()方法和.indexOf()方法,其中.contains()方法是对.indexOf()的封装,所以性能上肯定是.indexOf()要快些. .contains()方法源码如下: /** * Returns true if and only if this ... -
Linux Shell日期比较,数值比较和字符串比较及相关
2018-07-30 10:23:21Linux Shell日期比较,数值比较和字符串比较及相关 说明: 1. 把字符串当成整型进行比较,由于abcd等字符对不上0123当程序尝试去转成二进制时无法完成转换,所以用于数值比较的运算不能用于字符串比较;但是把整型... -
JAVA比较两个字符串的不同之处并打印出来要怎么做 字符串比较
2016-07-14 05:33:26我想做的是比较两个文件种不同的地方,我的办法是把他们以字符串的形式都出来存到变量a和b里面,然后进行字符串比较,这个思路没错的吧?现在想请教一下如何比较两个字符串并把他们不同的地方打印出来?求个demo~~~~... -
蓝桥杯:字符串比较
2018-07-22 00:16:17独立实现标准字符串库的strcmp函数,即字符串比较函数,从键盘输入两个字符串,按字典序比较大小,前者大于后者输出1,前者小于后者输出-1,两者相等输出0。 输入 无 输出 无 样例输入 apple one 样例...
-
国家注册信息安全工程师体系课程(CISP-PTE)
-
软件工程清华大学P1-P19
-
转行做IT-第1章 计算机基础
-
Java.Web整合开发王者归来.zip
-
html个人简历表格制作
-
Cocos Creator游戏开发-连连看 (接入腾讯优量汇广告)
-
集合类
-
InsightToolkit-5.1.2.zip
-
RockMQ消息的储存
-
gostudy_zip dos下怎么样才能下go棋
-
浙大版《数据结构(第2版)》题目集习题2.5 两个有序链表序列的合并 (15分)
-
QT 拼图游戏
-
java存大数和高精度浮点数(BigInteger与BigDecimal)
-
Selenium3分布式与虚拟化
-
PostgreSQL-11.10-osr507-Binary.tar.gz
-
32,64位操作系统下进程能够申请的内存大小各是多少
-
flash actionscript3游戏编程之AS3 PureMVC设计模式在AS中的应用例子_详解MVC的作用.zip
-
【数据分析-随到随学】Python语法强化与数据处理
-
如何实现Envoy 动态配置一个简单的控制平面
-
三维地图GIS大数据可视化