"C ++ 입문서"읽기 노트-05 장 추가 문자열 작업

저자 : Ma Zhifeng
링크 : https : //zhuanlan.zhihu.com/p/24498537
출처 : 거의
저작권이 저자 에게 있음을 알고 있습니다. 상업적 재판의 경우 저자에게 연락하여 승인을 받으십시오. 비상업적 재판의 경우 출처를 표시하십시오.

성명서:

  • 기사의 내용은 "C ++ Primer Chinese Edition (5th Edition)"에서 수집 및 편집되었으며 저작권은 원서에 있습니다.
  • 원본 책은 더 자세하고 멋진 해석을 가지고 있으므로 학습용 정품 책을 구입하세요.
  • 이 기사는 학습과 의사 소통을위한 것이며 어떠한 형태의 전재도 금지되어 있습니다.

본문

  • 구조
  • substr
  • 수정
  • 검색
  • 비교
  • 수치 변환

구조

string s1;  
string s2(s1); string s2 = s1;  
string s3("val"); string s3 = "val";  
string s4(n, 'c');  

string s{
      
      'a', 'b', 'c'};  
string s = {
      
      'a', 'b', 'c'};  
string s(beg,end);  
string s(n);  

string s(cp,n); //n可选  
string s(s2, pos2);  
string s(s2, pos2, len2);

특히 책의 내용과 아래 URL에 참여하실 수 있습니다.

std :: basic_string-cppreference.com

substr

s.substr(pos, n);

s의 pos에서 n 문자의 복사본을 포함하는 문자열을 반환합니다.

n의 기본값은 s.size ()-pos입니다.

pos는 경계를 넘을 수 없습니다. pos + n은 문자열의 끝에 만 복사 할 수 있습니다.

문자열을 변경하는 다른 방법

  1. 순차 컨테이너의 할당, 삽입, 지우기 및 할당 작업
  2. 아래 첨자 삽입 및 지우기 버전 허용
  3. 삽입 허용 및 c 스타일 문자 배열의 할당
  4. 추가 및 바꾸기 기능

자세한 내용은 P323 표 9.13을 참조하십시오.

검색 작업

일치가 발생한 위치의 아래 첨자를 나타내는 string :: size_type 유형의 값을 반환합니다.

검색이 실패하면 string :: npos라는 정적 멤버가 반환됩니다.

string :: size_type은 서명되지 않은 유형입니다. 검색의 반환 값을 저장하기 위해 int 또는 기타 서명 된 유형을 사용하지 않아야합니다.

s.find(args)  
s.find_first_of(args)  
s.find_first_not_of(args)

args는 다음 형식이어야합니다.

  • c, pos // 위치 pos에서 문자 c 찾기, pos 기본값은 0
  • s2, pos // s2 문자열 찾기, pos 기본값은 0
  • cp, pos // c 스타일 문자열 찾기, pos 기본값은 0
  • cp, pos, n // 포인터가 가리키는 배열의 처음 n 개 문자를 찾습니다. cp, pos 및 n에는 기본값이 없습니다.
find----rfind  
find_first_of----find_last_of  
find_first_not_of----find_last_not_of

비교

s.compare(s2);  
s.compare(pos1, n1, s2);  
s.compare(pos1, n1, s2, pos2, n2);  
s.compare(cp);  
s.compare(pos1, n1, cp);  
s.compare(pos1, n1, cp, n2);

수치 변환

메모리에서 숫자의 문자 표현이 값과 다릅니다.

15 : 0000000000001111
“15”: 0011000100110101

새로운 표준은 여러 변환 기능을 소개합니다

to_string(val);  

//转换成整数  
//p是第一个非数值字符的下标,默认值为0  
//b是基数,默认值为10  
stoi(s, p, b);  
stol(s, p, b);  
stoul(s, p, b);  
stoull(s, p, b);  

//转换成浮点  
stof(s,p)  
stod(s,p)  
stold(s,P)

추천

출처blog.csdn.net/qq_26751117/article/details/54025427