2017-09-11 42 views
-3

我希望找到一個給定的文件名的文件名的最大長度和使用爲目的如下代碼:如何找到文件名的長度?

int Max_FnLen=strlen(files[0]->d_name); 
for (i=1;i<count-1;i++) 
{ 
if(strlen(files[i]->d_name)>strlen(files[i-1]->d_name)) 
{ 
    Max_FnLen=strlen(files[i]->d_name); 
} 
} 

但它不是得到所需要的輸出誰能幫我這個

謝謝!

+2

爲什麼你的循環條件'我

+0

正如你明確使用術語「文件名」,而不僅僅是字符串:什麼是你的「期望輸出」,你會得到什麼?你的意見是什麼?調試器告訴了什麼?變量是如何聲明的? ...閱讀[問]並提供所需的信息加[mcve]。 – Olaf

回答

3
int Max_FnLen=strlen(files[0]->d_name); 
for (i=1;i<count;i++) 
{ 
if(strlen(files[i]->d_name)>Max_FnLen) 
{ 
    Max_FnLen=strlen(files[i]->d_name); 
} 
} 

試試這個。

-1

將索引爲0的元素初始設置爲具有最大長度的元素後,應將每個下一元素的長度與最大長度的當前值進行比較。

的代碼可以看看下面的方式

size_t Max_FnLen = strlen(files[0]->d_name); 

for (size_t i = 1; i < count; i++) 
{ 
    size_t FnLen = strlen(file[i]->d_name); 

    if (Max_FnLen < FnLen) 
    { 
     Max_FnLen = FnLen; 
    }  
} 

如果你也需要知道元件與最大長度的指數,則可以修改代碼如下方式

size_t Max_FnLen = strlen(files[0]->d_name); 
size_t Max_Index = 0; 

for (size_t i = 1; i < count; i++) 
{ 
    size_t FnLen = strlen(file[i]->d_name); 

    if (Max_FnLen < FnLen) 
    { 
     Max_FnLen = FnLen; 
     Max_Index = i; 
    }  
}