問題があります。私はいくつかの文字列の長さfgets関数を使用した後に見てみました。文字列内にできる文字数の下に文字列を入力すると(文字列の最大文字数が9で4文字を入力するなど)、文字列の長さが+1になります。どうして?改行文字'\n'
の端がfgets()
でname
にコピーした文字列に含まれているため文字列の長さとfgets関数(C言語)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
char name[10]={0};
printf("enter your name\n");
fgets(name, 10, stdin);
printf("your name is %s and it is %d letters\n", name, strlen(name)); // length problem
return 0;
}
'fgets'のmanページについては不明ですか?デバッガの関数の後に配列を調べましたか?あなたは文字列の最後に何を見つけましたか? – Olaf
'fgets()'は改行を読み込んだ場合、改行を入力に含めます。 –
...名前の後に出力が**次の行に移動する** ... – LPs