1樓:
你的程式排序結果是對的呀!怎麼不對了?
你是不是對字串比大小不太瞭解啊?
「abc">"abboijuoiuj」,因為c>b,所以第二個字串第二個b後面就算有幾億個字元,也比第一個字元小。
字串比大小是逐個字元比較的。小寫》大寫,如a>a;從a到z一次增大。
例如:abc,abbc,aabzzzzzz比大小,
1步.先比較第一個字元,大家都是a,不能比較出來,就看下一個字元,
2步.aabzzzzzz的第二個字元是a,其他的第二個字元都是b,那後面就不比了,aabzzzzzz就是最小了,哪怕它再長,也是最小;
3步.還剩abc和abbc比大小,同理,abc第三個字元是c,比abbc的第三個字元b大,所以abc>abbc
最後結果是:aabzzzzzzabbc>abc,那就從長度上做文章吧!
預設的比大小規則是我說的那種。不知對你有幫助沒。你的程式是對的!
2樓:匿名使用者
這題無非就是要你實現一個strcmp的函式這是核心裡的
int strcmp(const char *cs, const char *ct)
return 0;}
3樓:
首先你用指標的目的是什麼?是想不浪費空間嗎?如果不是的話
只要改成
char *s1,*s2,*3,*s;
s = (char*)malloc(sizeof(char)*50);
s1 = (char*)malloc(sizeof(char)*50);
s2 = (char*)malloc(sizeof(char)*50);
s3 = (char*)malloc(sizeof(char)*50);
其他操作一樣
最後加上free(s);free(s1);free(s2);free(s3);
我按照我自己風格編了一下
#include
#include
#include
void main()
printf("輸入三個字串:\n");
gets(str[0]);
gets(str[1]);
gets(str[2]);
if(strlen(str[0])>strlen(str[1]))
if(strlen(str[0])>strlen(str[2]))
if(strlen(str[1])>strlen(str[2]))
printf("按由小到大的順序輸出為:\n");
printf("%s\n%s\n%s\n",str[0],str[1],str[2]);
for(i = 0; i < 4; i++)
free(str[i]);}
C語言字串問題,C語言字元陣列與字串問題
字串初始化,如果逐個賦值的話,系統不是會自動新增 0 嗎不是。圖一就是長度為4的陣列,圖二長度為5圖三會是新增 0,但是是會把後面所有的都設為 0因為圖一和圖四不以 0結尾,所以不能用strlen和strcmp,會越界 圖四也可以用char str 4 stop 這樣賦值。如果不手動加長度就會是5了...
C語言 輸入字串,然後逆序輸出
橘落淮南常成枳 可以將整數當做字串 字串長度不超過10 接收,然後反向輸出字元陣列元素即可。字串實際長度可以用strlen函式來計算。方法程式如下 include include main 杜哥是個小天才 include int main int len,i char str 100 gets st...
字串排序C語言程式設計,C語言程式設計題 輸入10個字串,將其從大到小排序後輸出。
include include define n 10 void main for i 0 i include include int main void void sort char s 11 c語言程式設計題 輸入10個字串,將其從大到小排序後輸出。include include void ma...