2011-03-19 3 views
0

C++에서 간단한 텍스트 편집기를 구현하도록 지정되었으므로 기능 중 하나를 다음 요구 사항으로 단순화 할 수 있습니다.C++에서 선의 미리 지정된 위치에 문자열을 출력하는 방법

예를 들어 두 개의 문자열 인 "stackoverflow"와 "stackexchange"가 있습니다. I는 rightest 위치에 leftest 위치와 오버 플로우에서 "스택"을 "인쇄하도록 요청하고

나는 두 가지 질문을 데 :. 각 출력 라인의 길이는 고정되어야한다

    1. 하지만 방법을 제어하는 ​​방법 이 길이는 C++에서? 예를 들어 선 길이의 입력 매개 변수를 200으로 얻습니다.이 200을 사용하여 대소 문자를 처리하는 방법
    2. 길이가 긴 문자열의 위치를 ​​찾는 방법이 예제에서는 길이 "stack"이 5이면 "overflow"의 시작 위치는 "200-5-8 + 1 = 188"이어야합니다.

    C++에서이를 수행하는 방법?

  • +0

    * stackexchange *는 어떻게됩니까? –

    답변

    4

    1) 당신은 스트림으로 필드를 설정하는 데 허용 std::setw()std::right 조종하고 조정 플래그를 사용할 수 있습니다 : 당신은을 찾기 위해 std::string에 내장 된 기능을 사용할 수 있습니다

    #include <iostream> 
    #include <iomanip> 
    
    std::cout << "stack" << std::right << std::setw(188) << "overflow" << std::endl; 
    

    2) 특정 하위 문자열의 위치 :

    std::string s("stackoverflow"); 
    std::size_t p = s.find("overflow"); 
    if (p != std::string::npos) 
        std::cout << "Found substring 'overflow' at position: " << int(p) << std::endl; 
    
    0

    첫 단어 뒤에 공백을 추가하십시오.

    관련 문제