前提・実現したいこと
現在、複数の文字列をファイルinput.txtからパイプラインにより入力し、文字列を辞書順にソートするコードを作成しています。
正しい入力・出力は以下の通りです。
【入力】(input.txt)
cat
bench
dog
apple
e-mail
【出力】
before:
cat
bench
dog
apple
e-mail
after:
apple
bench
cat
dog
e-mail(最後のみ改行なし)
自分のコードだとソートは成功するのですが、出力の形式(改行)がこの通りにいきません。
理由・修正方法を教えて頂けると幸いです。
該当のソースコード
C
1#include <stdio.h> 2#include <string.h> 3 4void strSort(int size, char str[30][31]){ 5 char tmp[31]; 6 for(int i=0; i<size-1; i++){ 7 for(int j=i+1; j<size; j++){ 8 if(strcmp(str[i], str[j]) > 0){ 9 strcpy(tmp, str[i]); 10 strcpy(str[i], str[j]); 11 strcpy(str[j], tmp); 12 } 13 } 14 } 15} 16 17void strlist(int size, char str[30][31]){ 18 for(int i=0; i<size; i++){ 19 printf("%s", str[i]); 20 if(i != size) printf("\n"); 21 } 22} 23 24int main(){ 25 int i, size; 26 char str[30][31]; 27 28 for(i=0; i<30; i++){ 29 if(scanf("%s", str[i]) == EOF){ 30 size = i+1; 31 break; 32 } 33 } 34 35 printf("before:\n"); 36 strlist(size, str); 37 printf("\n"); 38 39 strSort(size, str); 40 41 printf("after:\n"); 42 strlist(size, str); 43 44 return 0; 45} 46
###コンソール画面(VSCode)
Get-Content input.txt | .\a.exe before: cat bench dog apple e-mail after: (←ここに改行は本来ない) apple bench cat dog e-mail
補足情報(FW/ツールのバージョンなど)
実行環境:VSCode
gccでコンパイル。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/09 10:26