本文主要是介绍字符串比较大小的principle 、ASCII码和字符串string,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
http://www.cnblogs.com/aduck/articles/2246168.html
换行符的ASCII码是: 10,C语言用'\n'表示。回车符的ASCII码是: 13,C语言用'\r'表示。0是48 A65 a 97 空格 3
#include<iostream> //代码1 表示 #include<string> using namespace std; int main() { //string max = NULL;//错误 string max1 = ""; string max2 = " "; printf("%d\n", max1.size());//0 printf("%d\n", max2.size());//1 printf("%d\n", sizeof(max1));//28 一般是4 vs2013是28 printf("%d\n", sizeof(max2));//28 一般是4 vs2013是28 }
#include<iostream> //代码1 表示
#include<string>
using namespace std;
int main()
{
string max = "0";//48
string max1 = "";//0
string max2 = " ";//32
string max3 = "a";//97
string max4 = "-1";//45
string max5 = "-3";//45
string max6 = "-12";//45 负数全是45(c++)
string max7 = "-26";//45
string max8 = "12";//49 等价于1
max.c_str();
// string max3 =null;
printf("%d,%d,%d,%d\n", max,max1,max2,max3);
printf("%d,%d,%d,%d\n", max.c_str(), max1.c_str(), max2.c_str(),
max3.c_str());
printf("%d,%d,%d,%d,%d\n", max[0], max1[0], max2[0], max3[0], max4[0]);
printf("%d,%d,%d,%d,%d\n", max.c_str()[0], max1.c_str()[0], max2.c_str()[0],
max3.c_str()[0], max4.c_str()[0]);
printf("%d,%d,%d,%d\n", max5[0], max6[0], max7[0], max8[0]);
printf("%d,%d,%d,%d\n", max5.c_str()[0], max6.c_str()[0], max7.c_str()[0],
max8.c_str()[0]
);
char c = '-1'; //49
char c1 = '-2';// 50 取绝对值
char c2 = '-100';//48
char c3 = '-114';//52 取绝对值对10求余数
printf("%d,%d,%d,%d\n",c,c1,c2,c3);
}
//结果
//6695056, -859045840, -858993460, -858993460 //随机数字
//4980076, 4980040, 4980004, 4979968 //随机数字
//48, 0, 32, 97, 45
//48, 0, 32, 97, 45
//45, 45, 45, 49
//45, 45, 45, 49
//49, 50, 48, 52
//请按任意键继续. . .. .
https://social.microsoft.com/Forums/es-ES/66a069ec-bce7-4952-8bc1-b7d0145792be/string-?forum=visualcshartzhchs
http://wenwen.sogou.com/z/q326415606.htm
http://bbs.csdn.net/topics/120041459
string比较大小的原理(同c语言字符串的比较):
是首字母的ASCII码,如果首字母相同再比较第二个字母,以此类推。举例来说字符串abstract小于board。
比较的时候,从字符串左边开始,一次比较每个字符,直接出现差异、或者其中一个串结束为止。 比如ABC与ACDE比较,第一个字符相同,继续比较第二个字符,由于第二个字符是后面一个串大,所以不再继续比较,结果就是后面个串大。 再如ABC与ABC123比较,比较三个字符后第一个串结束,所以就是后面一个串大。 所以,长度不能直接决定大小,字符串的大小是由左边开始最前面的字符决定的。http://zhidao.baidu.com/link?url=mwgLd1SF5fpBvMDLklFdK7-XAzPjqM61WvhKojdJxniWAPkfUxVyV4KmtcrLPeWqnFFKNSTZNX4ovx0eApEXNq#include<iostream> #include<string> using namespace std; int main() { string max = "2";//48 string max1 = "1234"; printf("%d\n", max > max1 ? 1 : 0); }//结果 1所以字符串比较大小是优先级比较,左大则大。而不是以长度为准。所以如果长度相同的数字可以直接用字符串比较大小了,但必须都是正数。上一篇日志时间搓算法就是用的这个原理。
这篇关于字符串比较大小的principle 、ASCII码和字符串string的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!