[英]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.