>백엔드 개발 >C++ >C에서 부분 문자열을 효율적으로 대체하려면 어떻게 해야 합니까?

C에서 부분 문자열을 효율적으로 대체하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-12-19 20:10:11785검색

How Can I Efficiently Replace Substrings in C  ?

문자열 조각을 새 문자열로 바꾸기

문자열의 특정 부분을 대체 문자열로 바꾸는 것은 프로그래밍에서 일반적인 작업입니다. C에서 표준 라이브러리는 이를 달성하기 위한 편리한 솔루션을 제공합니다.

하위 문자열을 바꾸려면 find() 함수를 활용하여 원래 문자열 내에서 대상 하위 문자열의 시작 위치를 찾을 수 있습니다. 그런 다음, replacement() 함수를 활용하여 대상 하위 문자열을 원하는 대체 문자열로 대체할 수 있습니다.

다음 코드 조각은 프로세스를 보여줍니다.

bool replace(std::string& str, const std::string& from, const std::string& to) {
    size_t start_pos = str.find(from);
    if(start_pos == std::string::npos)
        return false;
    str.replace(start_pos, from.length(), to);
    return true;
}

std::string string("hello $name");
replace(string, "$name", "Somename");

이 접근 방식을 사용하면 필요에 따라 문자열의 일부를 효과적으로 수정할 수 있습니다.

다중 처리 교체

특정 시나리오에서는 문자열 내 특정 하위 문자열의 여러 인스턴스를 교체해야 할 수도 있습니다. 이 문제를 해결하려면 다음과 유사한 replacementAll() 함수를 고려해 보세요.

void replaceAll(std::string& str, const std::string& from, const std::string& to) {
    if(from.empty())
        return;
    size_t start_pos = 0;
    while((start_pos = str.find(from, start_pos)) != std::string::npos) {
        str.replace(start_pos, from.length(), to);
        start_pos += to.length(); // In case 'to' contains 'from', like replacing 'x' with 'yx'
    }
}

이 함수는 문자열을 반복하여 지정된 하위 문자열의 모든 항목을 찾아 제공된 대체 문자열로 바꿉니다.

위 내용은 C에서 부분 문자열을 효율적으로 대체하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.