Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++로 문자열의 첫 번째 문자와 마지막 문자가 같은지 확인하는 방법


문자열이 입력으로 주어졌을 때, 해당 문자열의 첫 번째 문자와 마지막 문자가 서로 같은지 판별하는 것이 이번 문제의 목표입니다. C++의 기본적인 문자열 처리 함수만 활용하면 아주 간단하게 해결할 수 있습니다.

예시

입력: study
출력: 같지 않음
    첫 번째 문자는 's'이고 마지막 문자는 'y'이기 때문입니다.
입력: nitin
출력: 첫 번째와 마지막 문자가 같습니다
    첫 번째 문자는 'n'이고 마지막 문자도 'n'이기 때문입니다.

문제 해결 접근 방식

  • 문자열을 입력받아 변수에 저장합니다.
  • length() 함수를 사용하여 문자열의 길이를 계산합니다.
  • 문자열의 첫 번째 문자와 마지막 문자를 비교하여, 같으면 1을 반환하고 그렇지 않으면 0을 반환합니다.
  • 최종 결과를 출력합니다.

여기서 한 가지 주의할 점은 문자열의 길이가 2보다 작은 경우입니다. 빈 문자열이거나 너무 짧은 입력은 유효한 비교 대상이 아니므로, 이 경우에는 별도로 처리하여 -1을 반환하도록 설계했습니다.

알고리즘

시작
Step 1 -> 첫 번째 문자와 마지막 문자가 같은지 검사하는 함수 선언
    int check(string str)
    set int len = str.length()
       IF (len < 2)
          return -1
       End
       If (str[0] == str[len - 1])
          return 1
       End
       Else
          return 0
       End
Step 2 -> int main()
    declare string str = "tutorialsPoint"
    set int temp = check(str)
    If (temp == -1)
       Print "유효한 입력을 넣어주세요"
    End
    Else if (temp == 1)
       Print "첫 번째와 마지막 문자가 같습니다"
    End
    Else
       Print "같지 않음"
종료

C++ 구현 예제

#include<iostream>
using namespace std;
// 첫 번째 문자와 마지막 문자가 같은지 검사하는 함수
int check(string str) {
    int len = str.length();
    if (len < 2)
        return -1;
    if (str[0] == str[len - 1])
        return 1;
    else
        return 0;
}
int main() {
    string str = "tutorialsPoint";
    int temp = check(str);
    if (temp == -1)
        cout<<"enter valid input";
    else if (temp == 1)
        cout<<"yes it have first and last equal characters";
    else
        cout<<"Not equal";
}

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

yes it have first and last equal characters

코드 설명

위 예제에서 테스트에 사용된 문자열은 "tutorialsPoint"입니다. 이 문자열은 첫 글자가 't'이고 마지막 글자 역시 't'이므로 두 문자가 동일하여 함수가 1을 반환하고, 화면에는 두 문자가 같다는 메시지가 출력됩니다.

이 프로그램의 시간 복잡도는 O(1)입니다. 문자열의 길이와 관계없이 첫 번째 문자와 마지막 문자 단 두 개만 비교하면 되기 때문입니다. 추가 메모리 사용도 거의 없어 매우 효율적인 방법이라 할 수 있습니다.