ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [C/C++] String 함수 정리
    프로그래밍/C,C++ 2020. 5. 7. 23:21
    #include <iostream>
    #include <algorithm>
    using namespace std;
    
    int main(void) {
    	ios_base::sync_with_stdio(false);
    	cin.tie(0);
    	
    	string s = "Time is 2020Year 03Month";
    	
    	// 문자열의 길이(사이즈) 
    	cout << s.size() << "\n";
    	
    	// 문자열을 인덱스로 접근 가능 
    	for(int i = 0; i < s.size(); i++) {
    		cout << s[i] << " ";
    	}
    	cout << "\n";
    	
    	// 대문자 출력 
    	for(int i = 0; i < s.size(); i++) {
    		if(isupper(s[i])) cout << s[i] << " ";
    	}
    	cout << "\n";
    	
    	// 소문자 출력 
    	for(int i = 0; i < s.size(); i++) {
    		if(islower(s[i])) cout << s[i] << " ";
    	}
    	cout << "\n";
    	
    	// 숫자 출력 
    	for(int i = 0; i < s.size(); i++) {
    		if(isdigit(s[i])) cout << s[i] << " ";
    	}
    	cout << "\n";
    	
    	// 문자열 뒤에 문자 추가
    	s.push_back('s');
    	s += 's';
    	
    	// 문자열 뒤에 문자 제거
    	s.pop_back(); 
    	cout << s << "\n"; 
    	
    	// 문자열 뒤에 문자열 추가
    	s += " 27Day";
    	cout << s << "\n";
    	
    	// 특정 위치에 문자열 추가 (시작 위치, 문자열) 
    	s.insert(0, "Korean ");
    	cout << s << "\n"; 
    	
    	// 특정 위치의 문자열 제거 (시작 위치, 끝 위치) 
    	s.erase(0, 7);
    	cout << s << "\n";
    	
    	// 특정 위치의 문자열 변환 (시작 위치, 넣을 문자열의 길이, 문자열) 
    	s.replace(0, 5, "Today ");
    	cout << s << "\n"; 
    	
    	// 문자열 추출 (시작 위치)
    	cout << s.substr(13) << "\n"; 
    	
    	// 문자열 추출 (시작 위치, 찾을 문자열의 길이) 
    	cout << s.substr(0, 5) << "\n";
    	
    	// 문자열 찾기
    	cout << s.find("Today") << "\n"; // 시작 인덱스 반환 
    	cout << s.find("Time") << "\n"; // string::npos 반환 
    	
    	// 문자열 찾기 (찾을 문자열, 시작 위치)
    	cout << s.find("Today", 5) << "\n";
    	
    	// 문자열 찾기 (찾을 문자열, 시작 위치)
    	// 마지막 인덱스부터 뒤에서 검색하며 맨 처음 일치하는 위치를 반환 
    	cout << s.rfind("Today", 5) << "\n";
    	
    	// 문자열 전체 삭제
    	s.clear();
    	cout << s << "\n"; 
    }

     

    /* 문자열 중에서 가장 긴 단어 찾기 */
    
    #include <iostream>
    #include <algorithm>
    using namespace std;
    
    int main(void) {
    	ios_base::sync_with_stdio(false);
    	cin.tie(0);
    	
    	string s = "It is time to study", res;
    	int pos, max = INT_MIN;
    	
    	while((pos = s.find(' ')) != string::npos) {
    		string tmp = s.substr(0, pos);
    		int len = tmp.size();
    		if(max < len) {
    			max = len;
    			res = tmp;
    		}
    		s = s.substr(pos + 1);
    	}
    	if(max < s.size()) res = s;
    	
    	cout << res << "\n";
    }

    '프로그래밍 > C,C++' 카테고리의 다른 글

    [C/C++] STL Stack, Queue 사용법  (0) 2020.09.22
    [C/C++] map 자료구조를 이용한 문자열 문제 해결  (0) 2020.09.02
    [C/C++] STL Vector 사용법  (0) 2020.05.08
    if 와 else if의 차이점  (0) 2020.02.29
    [C/C++] scanf vs fgets  (0) 2020.02.28

    댓글

Designed by Tistory.