Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 도커 #Docker #배포 #Spring #MySQL #백엔드배포
- chatgpt #gpt #챗지피티 #ai
- 도커 #docker #docker-compose.yml #도커컴포즈 #배포 #spring #mysql #docker-compose
- /
Archives
- Today
- Total
개발자 데뷔!
[C/C++ 2.5] 문자열 handling 본문
두 문자열 같은지 비교
//6번
// 다르면 return 하는 함수
int isSame(int a[4], int b[4]) {
for (int i = 0; i < 4; i++) {
if (a[i] != b[i])
return 0;
}
return 1;
}
int main() {
int password[4] = { 3,7,4,9 };
int input[4];
for (int i = 0; i < 4; i++) {
cin >> input[i];
}
if (isSame(password, input) == 1)
cout << "pass";
else if (isSame(password, input) == 0)
cout << "fail";
return 0;
}
두 문자열 받아서, 이어붙이기(merge 하기)
//12번
int main() {
char arr[2][6]; //최대 5글자면, null문자 포함 6자리 선언 ! ***주의 **
char vect[12] = {0};
int j1 = 0, j2 = 0;
//입력
for (int i = 0; i < 2; i++) {
cin >> arr[i];
}
//merge // 두문자열 merge하는 법 !!! 정리 !!!***
while (arr[0][j1] != '\0') {
j1++;
}
for (int i = 0; i < j1; i++) {
vect[i] = arr[0][i];
}
while(arr[1][j2] != '\0') {
j2++;
}
for (int i = 0; i < j2; i++) { //NULL문자 포함하게 = 포함 !
vect[j1 + i] = arr[1][i];
}
//출력
cout << vect;
return 0;
}
두 문자열 => 정렬 후, 이어붙이기
* NULL 을 포함한 문자열을 정렬할 땐, 주의해야 한다.
- null제외하고 정렬!!! 정리
- 왜냐하면 NULL까지 정렬해버리며 순서 바뀌는데,
NULL이 앞으로 오는 순간, 그 뒤의 모든 문자들 없는 취급하기 때문에, 통째로 날아감
//13번
int sort(char arr[6]) {
char tmp;
int idx = 0;
//반드시 길이 먼저 구해야 함 !!!
while (arr[idx] != '\0')
idx++;
//꼭 길이 기반으로 해야 null안섞이고 편함 !!!
for (int i = 0; i < idx; i++) { //이거 6으로 해두면 data다 날아감,,,, 여기선 null제외하고 정렬!!! 정리 **
for (int j = i + 1; j < idx; j++) { // 왜냐하면 NULL까지 정렬해버리며 순서 바뀌는데, NULL이 앞으로 오는 순간, 그 뒤의 모든 문자들 없는 취급하기 때문에, 통째로 날아감
if (arr[i] > arr[j]) {
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
return 0;
}
int main() {
char arr[2][6] = { "DATAW","BBQK" };
int a,j=0;
cin >> a;
if (a % 2 == 1) {
sort(arr[0]); //해당 line만 sort
}
else {
sort(arr[1]);
}
//출력
cout<<arr[0]<<endl<<arr[1]; //배열은 한 line씩 출력 !
//cout << arr; //이렇게 하면 또 안됨. 16진수로 뜸
return 0;
}
문자열 중간에 문자 끼워넣기
//3번
int main() {
char input[6];
int a,idx=0;
cin >> input >> a;
//길이 찾기
while (input[idx] != '\0')
idx++; //idx = NULL 문자 위치INDEX
// index a 기준 한칸씩 뒤로 땡기기 // 이 로직 정리 !!! **
for (int i = idx; i > a; i--) {
input[i] = input[i-1];
}
input[a] = 'A';
for (int i = 0; i < idx + 1; i++)
cout << input[i];
return 0;
}
문자열에서 특정 문자 제거하기
//5번
int main() {
char arr[10];
int index;
int j;
cin >> arr;
cin >> index;
//문자 땡겨오기
j = index;
while (arr[j] != '\0') { //문자 한칸씩 땡겨오기 !!!! **** 정리
arr[j] = arr[j + 1];
j++;
}
j = 0;
//출력
while (arr[j] != '\0') {
cout << arr[j];
j++;
}
return 0;
}
문자열 속에서 특정 문자열 찾기
//7번
int main() {
int train[8] = { 3,7,6,4,2,9,1,7 };
int team[3];
for (int i = 0; i < 3; i++)
cin >> team[i];
for (int i = 0; i < 5; i++) { // 문자열 속에서 문자열 찾기 !!
if (train[i] == team[0] && train[i + 1] == team[1] && train[i + 2] == team[2]) //세 글자가 모두 같으면 우리팀!
cout << i << "번~" << i + 2 << "번 칸";
}
return 0;
}
문자열 속에서 특정 문자열 있는지 확인
//11번
int main() {
char arr[20];
int j = 0;
bool flag = 0;
cin >> arr;
while (arr[j] != '\0') { //문자열 내에 특정 문자열 있는지 확인 하는 로직 !!! ****
if (arr[j] == 'G' && arr[j + 1] == 'H' && arr[j + 2] == 'O' && arr[j + 3] == 'S' && arr[j + 4] == 'T') {
flag = 1;
}
j++;
}
if (flag == 0)
cout << "존재하지 않음";
else if (flag == 1)
cout << "존재";
return 0;
}
'프로그래밍 언어 > C++' 카테고리의 다른 글
[C/C++ 6.3] STL Vector 2차원 (0) | 2022.04.23 |
---|---|
[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.2] string vs char[] 비교 (0) | 2022.03.10 |