簡體   English   中英

C:在動態分配的字符數組中打印最長的字符串

[英]C: print longest string in a dynamic allocated array of chars

我創建了一個動態分配的字符數組,並從 a.txt 文件中讀取了一些文本行。 如何在數組中找到最長的“字符串”?

.txt 文件如下所示:

usr
user
username
somerandomtext

這是我加載數組並打印它的代碼:

char c = fgetc(rezultati);
printf("\n");
int x = 0;
while (c != EOF){
     pogg[x++] = c;
     c = fgetc(rezultati);
}
pogg[x] = '\0';
printf("%s\n\n", pogg);

我嘗試將 qsort 與自定義比較器 function 一起使用,我的 output 只是 ^2 行(平方)。

使用fgets()逐行讀取文件,並獲取行的長度。 將最長的行保存在另一個變量中。

為此,您不需要所有行的數組。

#define MAXLEN 200

char buffer[MAXLEN], longest[MAXLEN] = "";
size_t maxlength = 0;

while(fgets(buffer, MAXLEN, stdin) {
    if (strlen(buffer) > maxlength) {
        strcpy(longest, buffer);
    }
}
printf("Longest line = %s\n", longest);

我認為您需要使用 function “strlen” 然后將長度存儲在數組中並進行比較。

maxlen = arrayOfLengths[0];
while (i !=0) {

len = strlen(arrayOflengths[i]);
if (len > maxlen) {
    maxlen = len;
    maxindex = i;}

這有點像偽代碼,但我認為它會給你一些想法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM