Online GDB 是否對 string.h 庫有任何問題?
void insertionSort( char *ptrArr[] )
{
for( int i = 1; i < ROW; i )
{
char *temp = ptrArr[i];
int j;
for( j = i - 1; j >= 0 && (strcmp(temp, ptrArr[j]) == -1); j-- )
ptrArr[j 1] = ptrArr[j];
ptrArr[j 1] = temp;
}
}
上面的代碼在在線 GDB 中不起作用。指標排序的輸出陣列沒有變化。但它在我的本地編譯器上運行良好。
uj5u.com熱心網友回復:
您的比較是錯誤的:而不是
(strcmp(temp, ptrArr[j]) == -1)
你應該寫
(strcmp(temp, ptrArr[j]) < 0)
實際上,strcmp回傳一個正值或負值(或 0),不一定是 -1 或 1(或 0)。
來自 man strcmp:
如果 s1(或其前 n 個位元組)分別小于、匹配或大于 s2,則 strcmp() 和 strncmp() 函式回傳一個小于、等于或大于零的整數.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/530670.html
標籤:C排序数据库
上一篇:如何在R中分割整數向量
下一篇:如何在價格陣列中創建范圍
