strcmp子函數的功能是比較str1和str1字符串的每個字符
用壹個for循環來實現這個功能的
功能實現,模擬著函數
void
mystrcmp(char
*str1,char
*str2)
{
int
i;
for(i=0;str1[i]||str2[i];i++)
if(str1[i]<str2[i])
retrun
-1;
else
if(str1[i]>str2[i])
return
1;
return
0;
}
strcpy拷貝子函數也是用壹個for循環來實現的
void
mystrcpy(char
*str1,char
*str2)
{
int
i=0;
while(str1[i]=str2[i])
i++;
}
妳完全可以把這個功能模塊用著相應的位置
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
排序大循環沒問題
for(;k<l;k++)
{
if(*(str[i]+k)!=*(str[j]+k))
//妳這裏只是判斷了不相等的情況,大小沒有判斷
這壹塊應該是比較部分吧,感覺應該不對
應該是
for(k=0;str[i][k]||str[j][k];k++)
{
if(str[i][k]>str[j][k])
//也可以用指針,大了就交換,小了或等於不交換
交換代碼
}
l=min(strlen(str[i]),strlen(str[j]));
這壹句完全可以用l=strlen(str[i])>strlen(str[j])?strlen(str[i]):strlen(str[j]);
不用子函數,或者壹個if--else來解決
temp=str[j];
str[j]=str[i];
str[i]=temp;
這是交換的代碼,字符串不能這麽交換,可以用strcpy拷貝函數,或者字符壹個壹個的交換
不能整個字符串用=來賦值