C언어 | 문자열 관련 백준 문제 풀이

설탕·2024년 4월 13일
0

문제 27866번. 문자와 문자열

풀이

#include <stdio.h>

int main(void)
{
  char str[1001]; // 문자열은 char 배열
  char *p = str; // char 포인터는 배열의 시작 위치 값 저장
  int index;

  scanf("%s%d", str, &index);
  printf("%c\n", p[index - 1]); // char 포인터로 문자열 배열 요소 출력

  return 0;
}

문제 9086번. 문자열

풀이

#include <stdio.h>
#include <string.h> // 문자열 연산 함수 사용하기 위한 헤더 파일

int main(void)
{
  int count;
  scanf("%d", &count);

  for (int i = 0; i < count; i++) // 테스트 케이스 개수만큼 반복
  {
    char str[1000];
    char *p = str;

    scanf("%s", str);
    printf("%c%c\n", p[0], p[strlen(str) - 1]); // strlen 함수로 문자열 길이 계산
  }

  return 0;
}
  • strlen 함수: 문자열 길이를 계산
    • 배열에 저장된 문자열에서 널 문자가 나올 때까지 문자 수를 세어 반환한다.

문제 2908번. 상수

풀이

#include <stdio.h>
#include <string.h>

int main(void)
{
  char a[4]; // 널 문자까지 포함하여 3자리+1만큼 배열 생성
  char b[4];
  char max[4];
  char *pmax = max;
  char ch;

  scanf("%s%s", a, b);

  // 첫 글자와 마지막 글자 자리 바꾸기
  ch = a[0];
  a[0] = a[2];
  a[2] = ch;

  ch = b[0];
  b[0] = b[2];
  b[2] = ch;

  // strcmp 함수로 문자열 아스키 코드 값 비교
  if (strcmp(a, b) > 0) pmax = a;
  else pmax = b;

  printf("%s\n", pmax);

  return 0;
}
  • strcmp 함수: 문자열 아스키 코드 값 비교
    • 반환값이 양수이면 문자열 인수 2개 중 앞의 값이 크고, 음수이면 뒤의 값이 크다.
profile
공부 기록

0개의 댓글