sizeof演算子とstrlen関数の使いどきを混同していた。
配列全体の長さ=sizeof
その配列の内、文字列が入っている部分の長さ=strlen
#include <stdio.h> #include <string.h> int main(void){ printf("INPUT SOMETHING \n"); char buffer[10]; fgets(buffer,10,stdin); printf("YOUR INPUT : %s\n",buffer); printf("size of array is %d\n",sizeof(buffer)); printf("length of string is %d\n",strlen(buffer)); printf("a[last-1] = %c\n",buffer[strlen(buffer)-1]); printf("a[last] = %c\n",buffer[strlen(buffer)]); if(buffer[strlen(buffer)]=='\0') printf("end of array is null terminator. Remember it :)\n"); buffer[strlen(buffer)-1]='\0'; printf(buffer); printf("<-- Hooray, the new line code was deleted."); return 0; }