> 백엔드 개발 > C++ > 본문

C 문자열에서 특정 문자를 제거하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-11-24 03:04:09
원래의
950명이 탐색했습니다.

How to Remove Specific Characters from a String in C  ?

C의 문자열에서 특정 문자 제거

사용자 입력에 제거해야 하는 바람직하지 않은 문자가 포함될 수 있는 프로그래밍 시나리오에서 전화번호를 수집할 때 다음과 같은 질문이 생깁니다. C의 문자열에서 이러한 문자를 어떻게 효과적으로 제거할 수 있습니까?

The 제거, 찾기, 바꾸기 등의 내장 문자열 함수는 특정 상황에서는 유용하지만 내용에 따라 문자열에서 특정 문자를 제거할 때 원하는 기능을 제공하지 못할 수 있습니다.

해결책은 다음과 같습니다. 라이브러리의 std::remove 함수를 활용합니다. 이 알고리즘은 시작 반복자(문자열의 시작), 종료 반복자(문자열의 끝), 제거할 값의 세 가지 인수를 사용합니다.

이를 괄호 제거 예제에 적용하려면 전화번호 입력에서 , 대시 및 공백을 사용하여 다음 문자를 포함하는 문자 배열을 정의할 수 있습니다.

char[] chars = "() -";
로그인 후 복사

배열의 각 문자를 반복하면서 다음을 적용합니다. std::remove를 전화번호 문자열로:

for (unsigned int i = 0; i < strlen(chars); ++i) {
  str.erase(std::remove(str.begin(), str.end(), chars[i]), str.end());
}
로그인 후 복사

이것은 문자열에서 지정된 문자의 모든 항목을 효과적으로 제거하여 원하는 출력을 효과적으로 제공합니다.

솔루션을 더욱 향상시키기 위해 해당 기능을 재사용 가능한 함수로 캡슐화할 수 있습니다.

void removeCharsFromString(string &str, char* charsToRemove) {
  for (unsigned int i = 0; i < strlen(charsToRemove); ++i) {
    str.erase(remove(str.begin(), str.end(), charsToRemove[i]), str.end());
  }
}
로그인 후 복사

이제 우리는 이 함수를 쉽게 호출하여 문자열에서 원하지 않는 문자를 제거할 수 있습니다. 예를 들어 전화번호에서 괄호를 제거하려면:

removeCharsFromString(phone, "()");
로그인 후 복사

std::remove를 활용하고 이를 재사용 가능한 함수로 구현하면 C의 문자열에서 특정 문자를 제거하는 효율적인 솔루션이 있습니다. 데이터 처리 및 조작이 더욱 편리해졌습니다.

위 내용은 C 문자열에서 특정 문자를 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿