Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

scanfで改行まで読む

stdioライブラリのscanfで改行を掴むにはフォーマット文で末尾の改行を拾いに行けばいいだけです

実際のところ

10文字まで、それ未満は改行まで……

#include <stdio.h>

int makeTitle(char str[]) {
  printf("\n\n###%s###\n\n", str);   
  return 0;
}

int main() {
   
   char string[] = "                  ";
   
   scanf("%10[^\n]", string);

   makeTitle("文字列");
   printf("%s\n",string);
   printf("%s\n",(string + 7));

   makeTitle("文字");
   printf("%c\n",(string[7]));
   printf("%c\n",*(string + 7));
   printf("%c\n",(7[string]));
   printf("%c\n",*(7 + string));

   return 0;
}
$ ./sample.o 
sample hello this is good


###文字列###

sample hel
hel


###文字###

h
h
h
h