字串大小比較,字串大小比較的規則

時間 2021-12-25 04:52:37

1樓:匿名使用者

如果單純比較長度,直接呼叫類似於strlen()之類的函式就可以,加以比較即可.

如果比較字串的大小,則比較的是字元的ascii編碼的大小.你搜尋一下ascii碼表就可以得知每乙個ascii字元的大小. 參考http:

//www.wpyz.net/noip/11-1.

asp在比較時,設定乙個計數器,從零開始,一直迴圈到最短的那個字元結束,一位一位進行比較,

1.如果 字串1的第n位的ascii碼值 等於 字串2的第n位的ascii碼值

則 繼續比較下一位

2.如果 字串1的第n位的ascii碼值 大於 字串2的第n位的ascii碼值

則 輸出結果:1,表示字串1 > 字串2;

3.如果 字串1的第n位的ascii碼值 小於 字串2的第n位的ascii碼值

則 輸出結果:-1 表示字串1 < 字串2;

4.如果 每一位的ascii碼值都相等,而且長度相同,

則 輸出結果:0 表示字串1 == 字串2;

5.如果 字串1是字串2的前m位,例如 abcd 與abcdef 比較,

則 字串1《字串2.

原因是,到第5位時,字串1的ascii值是0,而字串2的ascii值為'e',即十進位制的101,當然是字串2大了.

具體到 cds和lesoqd

從第一位開始,'c'和'l'比較,當然是'c' < 'l'了,所以,"cds" < "lesoqd"

常用的幾位ascii的順序從小到大為:

0..9, a..z, a..z.

2樓:斂高爽公尺曜

intstrcmp(char

*s,char

*t)return(*s-*t);

///返回差值,如果*s大,返回正數,如果*t大,返回負數,如果相等,返回0}

3樓:匿名使用者

逐個比,遇到的每個字母對應比較大小,遇到第乙個不一樣的字元就返回比較的結果

4樓:妖獸甲

另外,如果是c++語言的話,要比較字串的大小就直接str1

5樓:

比大小,從頭乙個開始,

頭乙個誰大,這個字串就是 誰大。

如果第乙個一樣大,比第二個。

6樓:匿名使用者

是按字典順序來比較的,

就像查字典那樣,

返回在字典中前面的那個字串的指標

當然,是區分大小寫的

字串大小比較的規則?

7樓:陽光上的橋

比較的時候,從字串左邊開始,一次比較每個字元,直接出現差異、或者其中乙個串結束為止。

比如abc與acde比較,第乙個字元相同,繼續比較第二個字元,由於第二個字元是後面乙個串大,所以不再繼續比較,結果就是後面個串大。

再如abc與abc123比較,比較三個字元後第乙個串結束,所以就是後面乙個串大。

所以,長度不能直接決定大小,字串的大小是由左邊開始最前面的字元決定的。

8樓:匿名使用者

優先判斷大小,然後前面都相同了,再看長度了,呵呵

9樓:星辰

字串大小比較的規則就是根據你的要求去選**務按格式去的

在c語言中字串的大小怎麼比較啊?

10樓:灩麗

1、c語言中字元是使

用baichar來定義的,使du用關係運zhi算符(>,<,=)即可對字元dao

進行比較。內

2、容在編譯器中定義a、b兩個字元型變數,並為其賦值。

3、執行**後,我們可以得到如圖所示結果。1表示條件為真,0表示條件為假。

4、字串使用char來定義,可以使用strcmp()來判斷大小,也可以使用關係運算子(>,<,=)判斷大小。

5、使用strcmp()對字串進行比較大小時,需要引入標頭檔案string.h。

6、執行**後,我們可以得到如圖所示結果。:使用strcmp進行判斷時,返回結果為0,表示兩個字串相等。返回結果大於0,表示第乙個引數字串大。

返回結果小於0,表示第二個引數字串大。

11樓:萬物凋零時遇見

strcmp 原型:extern int strcmp(char *s1,char * s2); 用法:#include 功能

bai:比較字元du

串zhis1和s2。 說明: 當s1dao,返回版值權<0 當s1=s2時,返回值=0 當s1>s2時,返回值》0 即:兩個字串自左...

12樓:匿名使用者

先比第乙個字元的內碼,第乙個字元誰大就誰大,第乙個相同就比第二個,以此類推,比如「12」>"100"成立

13樓:賽雲席曜瑞

//輸入

任意乙個數字,轉換為字內符串輸出

容#include

void

main()

;printf("input

anumber:");

scanf("%d",

&n);

sprintf(str,

"%d",

n);printf("the

string

is:[%s]\n",

str);}

14樓:匿名使用者

strcmp(str1, str2);

str1>str2 返回1, str1 < str2返回-1,str1 == str2 返回0

從第乙個字元開始比較它們ascii的大小

j**a中兩個字串如何比較大小

15樓:匿名使用者

有三種方法實現

第一種直接用字串類的compareto方法:

string t1="20131011";

string t2="20131030";

int result = t1.compareto(t2);

第二種是把這個日期字串轉換成long:

******dateformat sdf = new ******dateformat("yyyymmdd");

date d1 = sdf.parse(t1);

date d2 = sdf.parse(t2);

long result = d1.gettime()-d2.gettime();

第三種是把日期字串轉換成整形int:

int int1 = integer.parseint(t1);

int int2 = integer.parseint(t2);

int result = int1-int2;

注:result大於0,則t1>t2;

result等於0,則t1=t2;

result小於0,則t1

16樓:藍天下的智者

你確定你就是比較日期嗎?如果單純的是日期,那麼你可以把它當做數字比較

如果是不確定的字串,那麼你是要比較什麼呢?長度,還是首字母?問題要明確

17樓:

'20131011'.comapreto('20131030')

返回1表示大於,返回0表示相等,返回-1表示小於

千萬別把字串轉成啥日期或整數型別再比較,那會賊慢,迴圈1百萬遍就知道了

18樓:

public class hello}

19樓:匿名使用者

使用 string.compareto 方法:

compareto() 的返回值是int, 它是先比較對應字元的大小(ascii碼順序)

1、如果字串相等返回值0

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)

20樓:婧失憶

比較出大小之後 想要顯示什麼嘛?

21樓:匿名使用者

先用integer.parseint()轉型,再相減就ok

python中輸入字串,統計字串中大小寫英文本母各有多少

str 1 input 請輸入乙個字串 lower 0 upper 0 for i in str 1 if i.islower lower 1 elif i.isupper upper 1 print 有 s個大寫字母 upper print 有 s個小寫字母 lower 換證薇 str 1 inp...

C 給定字串,新增若干字元,使得字串變為回文字串,請問怎樣能讓這個字串最短

墨汁諾 include include using namespace std bool ishw const string str char str 100 scanf s str if judge str printf yes n else 對於ab字串,本身不是回文串 反過來是字串 ba 但是...

編寫C語言函式,比較兩個字串的大小

城凝慶偉博 include define n100 intinput char a,char b 輸入兩個字串 intmy strcmp char a,char b 比較字串每個字元的大小 else if a b else if a 0 b 0 字串b比字串a長 else if a 0 b 0 字串...