2

そのため、文字列とその文字列の長さをファイルに書き込む必要があります。出力は次のようになります。

======= =====
merrily   7
    row   3
   your   4
   boat   4
 gently   6
   down   4
    the   3
  dream   5
 stream   6
   life   4
     is   2
    but   3
      a   1

したがってchar big[50]、リスト内で最大の長さの文字列を保持する文字列配列が呼び出されます。使用すると、そのリストで最大の文字列であり、単語数が 7 であるstrlen(big)ため、7 になります。私のプログラムにはユーザーが開くことができる複数のファイルがあり、それを使用すると他のファイルに対して正しく正当化されないため、merrily書くことができません。このあたりの解決策はありますか?fprintf(fpOut, "%7s %d\n, table[i], strlen(table[i]);%7s

4

3 に答える 3

4

固定幅指定子 (7) をアスタリスクに置き換えて、可変幅指定子を取得できます。したがって、次のコードの幅指定子は次のようになりますstrlen(big)

fprintf(fpOut, "%*s %d\n", strlen(big), table[i], strlen(table[i]);
于 2013-03-01T06:59:18.817 に答える
1

これには printf を使用できます。

#include <stdio.h>

int main(int argc, char *argv[]){
  printf("%*s |\n", 7, "let"); 
  // or to file:  fprintf(file, "%*s |\n", 7, "let");
  return 0;
}
于 2013-03-01T06:59:01.503 に答える
0

文字列の長さはfprintf引数で指定できます。私のプロジェクトもご覧ください:libtprint-テーブルデータを印刷するためのシンプルなライブラリ、https://github.com/wizzard/libtprint。そこで私は文字列を正当化するためにさまざまなトリックを使用します。

それが役に立てば幸い !

于 2013-03-20T21:07:46.517 に答える