🙇‍♀️12_2


🪐fgets() fputs()

  • fgets() and fputs
char words[STRLEN] = "";
fgets(words, STRLEN, stdin); // does NOT remove \n

stdin을 적어야함 -> 콘솔 입력도 받을수 있도록하는 것

gets보다 안정적이다 -> 런타임 에러가 안남

/n을 지워주지 않기 때문에 \0을 대체해줘야 함

// \n을 \0으로 대체하기
int i = 0;
while (words[i] != '\n' && words[i] != '\0')
  i++;
if (words[i] == '\n')
  words[i] = '\0';
  • 문자열 입력
char small_array[5];
puts("Enter long string : ");
fgets(small_array, 5, stdin);
fputs(small_array, stdout);

여기서 긴 글자를 입력하면 처음으로부터 4글자만 출력된다. => 마지막 \0이 포함되어있기 때문에

/* Repeating short reading */

char small_array[5];
puts("Enter long string:");
while (fgets(small_array, 5, stdin) != NULL && small_array[0] != '\n')
	fputs(small_array, stdout);
  • scanf_s 사용하기
    char str1[6], str2[6];
    //int count = scanf("%5s %5s", str1, str2);
    int count = scanf_s("%5s %5s", str1, 6, str2, 6);
    printf("%s|%s \n", str1, str2);
    
  • 문자열 입력함수
    char* CustomStringInput(char* str, int n)
    {
      char* ret_ptr;
      int i = 0;
    
      ret_ptr = fgets(str, n, stdin);
      if (ret_ptr)
      {
          while (str[i] != '\n' && str[i] != '\0')
              i++;
          if (str[i] == '\n')
              str[i] = '\0';
          else
              while (getchar() != '\n') // clear buffer
                  continue;
      }
      return ret_ptr;
    }
    


🪐문자열을 출력하는 다양한 방법들

  • puts() : add \n at the end
char str[60] = "String array initalized";
const char* ptr = "A pointer initalized";

puts("String without \\n");
puts("END");
puts(TEST);
puts(TEST + 5);
puts(&str[3]);
puts(ptr + 3);

태그:

카테고리:

업데이트: