개발자 데뷔!

[C/C++ 2.2] string vs char[] 비교 본문

프로그래밍 언어/C++

[C/C++ 2.2] string vs char[] 비교

물꼮이 2022. 3. 10. 09:57

?? string은 마지막에 null 안들어갈까?

 

type)
string     => length() 사용 O  /  strcpy 사용 X   / 그냥 == 로 비교 가능 !!!  /  빈 문자열에 + "a" 로 문자 추가 가능 ! 
char[10]  => length() 사용 X  /   strcpy 사용 O / strcmp 사용 O / strlen() 사용 O

 

  string char[]
길이 .length() 사용 strlen 
(같은지) 비교 ==  strcmp
문자추가  +"a"로 추가가능  
대입   strcpy(max,str[0])
포함 .find()  
     
import   #include<cstring>
//5번
int main() {				// strcpy & strlen 연습문제 !!! 꼭 정리하기 !! *******
	char str[3][10];
	char max[10];
	int mi=0;
	//입력
	for (int i = 0; i < 3; i++) {
		cin >> str[i];
	}							// for 문 쓰기 싫으면 무조건 이렇게 strcpy 써서 복붙 해야됨 !!!!!****** 정리
	//최대길이 문장 찾기
	strcpy(max,str[0]);		// 문자열이기 때문에 그냥 max = str[0]; 이렇게 대입은 안됨
	for (int i = 0; i < 3; i++) {
		if (strlen(str[i]) > strlen(max)) {			//strlen 사용법 : strlen(배열) → NULL 문자 반환할 때까지 길이 셈
			strcpy(max, str[i]);					//strcpy 사용법 : strcpy(새로입력할 배열, 복사할 배열)
			mi = i;
		}
	}
	//SWAP
	char tmp[10];						// 문자열 swap을 strcpy로 무조건 해야됨!!! 즉 이거 연습하기 !!!
	strcpy(tmp, str[mi]);			//tmp = str[mi];
	strcpy(str[mi], str[0]);		//str[mi] = str[0];
	strcpy(str[0], tmp);			//str[0] = tmp;
	//출력
	for (int i = 0; i < 3; i++) {
		cout << str[i]<<endl;
	}
	return 0;
}

 

* .length()는 string type 만 사용가능  
  strcpy 는 char[]배열만 사용가능

아스키코드  '숫자 - 대문자 - 소문자' 순서   
* 함수 사용할 때 전달인자 없으면 그냥 

 


STL vector 사용))
선언 : vector<int> arr;
vector.push_back(숫자)
vector.pop_back()
vector.size() 

링크드 리스트) 
new 연산자 : 단일 변수를 동적으로 할당할 때 사용,     
  ex) new int;    
   => 운영체제에서 정수(int)값의 '메모리 요청'
   => new 연산자는 해당 메모리를 사용해 객체를 만든 후, 
   => 할당된 메모리의 주소가 포함된 포인터를 반환 
 ****
  그래서 ex) int *ptr = new int;       
  => 방식으로 할당된 메모리에 나중에 접근할 수 있도록, 
  => 반환값을 자체 포인터 변수에 할당한다. 

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

[C/C++ 6.2] STL Vector  (0) 2022.03.11
[C/C++ 6.1] STL Sorting  (0) 2022.03.11
[C/C++ 2.4] 문자열 Parsing  (0) 2022.03.10
[C/C++ 2.1] char, string 문자열 입력받기  (0) 2022.03.10
[C/C++ 1.2] 입출력 detail  (0) 2021.12.05