イメージとしては文字列のn字目に改行をいれて分ける という風だと考えまして
int main() { int c, n, len; char s[1000]; printf("何文字目で折りたたみますか?"); scanf("%d", &n); for(int i = 0; i< (c = getchar()) != EOF; ++i){ s = c; len = getline(s,1000); if(len > n){ s[n] += '\n'; printf("%s\n", s); } else{ printf("NG"); } } return 0; } int getline(char s[/url], int lim)//文字列の文字数を数える { int c, i; for(i = 0; i < lim -1 && (c = getchar()) != EOF && c != '\n'; ++i){ s = c; } if(c == '\n'){ s = c; ++i; } s = '\0'; return i; }
としたところうまくいきません。というのも改行が埋め込めていないようでして・・
3文字目に折りたたむとしてabcdefgと打ち込むと希望としては
abc
defg
なのですが
abcnefgと出力されてしまいます。
s[n] + '\n'の所がちゃんとできていないんだとおもいます。
どうすればうまくいきますか?