리 데...
기 문 string더 include 고 배 char *로 고 #1,#2,#3 strcpy를 고고 ,
"empty"로 기 나 PUSH를 때, 배 모든값 개 값로 변경된다는 다... 그 를 모르고 ..
"empty"로 기 나 PUSH를 때, 배 모든값 개 값로 변경된다는 다... 그 를 모르고 ..
AnswerMe 당 드를 려.#1, #2, #3 를 떻게 바꾸는 모르겠다. 그리고 리 .
~cpp #1 : strcpy(array[i], "empty"); #2 : strcpy(array[0], "empty"); #3 : strcpy(array[tail], "empty");가능다면, 드를 려. 각대로라면, 가능 드를 말는 것 같. --NeoCoin
문 드는 다과 같다. --문명
밤(10 ) 답변드리겠다. 게는 당 기가 될것 같군. 미. 단, 글로 기 든. 변 람들 붙고 물보는 것 방법 될것 같다. 그리고, 교 교, call By Value, call By reference Pointer 관련 부 면 겠다. --NeoCoin
명 복것 같다. 본 --;;
~cpp #include <iostream> #include <string> using namespace std; const int ASIZE = 5; // VC++ 7.0 결과, 면 디그 모드 되 다. // VC++ 6.0 라면, release 모드 되 것다. void main() { std::string a; char * array[ASIZE]; // Pointer 배다. , 문를 공 닙다. // char 를 가리 는 를 는 32bit 값들 Pointer들 5개 // 배다. // 각 Pointer들 미 는 값들로 다.(러 ) int tail = 0, status = 3; int select, count; for(int i = 0 ; i < ASIZE ; i++) strcpy(array[i], "empty"); // Pointer가 가르는 부 근 가능 메모리 공라면 // 덮 다. VC++ 6.0 Debug 모드는 디그 보를 // 드 변 근 가능 공 두기 때문 러가 가는 // 것로 보다. 경 debug 모드는 느 가능 // 로 기값 되 다. Release 모드로 바꾸 보. do { cout << "1. PUSH 2. Pop 3. Stack 4. Queue 5. Show 6. Exit" << endl; cin >> select; switch(select) { case 1 : cout << "력 : "; if (tail == ASIZE) { cout << " 로 다." << endl; break; } cin >> array[tail]; // array[tail] 까 미는 메모리 가리는 // 나 Pointer다. 그 로 문를 는 것므로 // 보 다. 근 가능 메모리 라면, 력 만 // 덮 다. tail++; break; case 2 : if(status == 4) // { strcpy(array[0], "empty"); tail--; for(count = 0 ; count < tail ; count++) array[count] = array[count+1]; // string 경 달리, Pointer 값만 복됩다. // string 라면, call by value 로 class // 복가 루 다. 같 값 되는 는 // 드 때문다. 배 모든 char 가 결국 같 곳 가리게 됩다. // 그래 반는 곳 바꾸면 모두가 바뀝다. } else // { tail--; strcpy(array[tail], "empty"); // 로, 미는 대 복 다. } break; case 3 : status = 3; break; case 4 : status = 4; break; case 5 : for(count = 0 ; count < tail ; count++) { cout << array[count] << "] "; // , 미는 가리는 Pointer를 력려는 // 다. , empty+null 라는 값 메모리 로 // 기 때문, 값 력 될 다. } cout << endl; break; case 6 : break; default : cout << " 1부 6까 를 력 " << endl; } }while(select != 6); }
력 관련 명, cin
~cpp std:string
력과, char* 력 cin string 력 는 드는
string 배 드는 다과 미가 같다.
~cpp C:\Program Files\Microsoft Visual Studio\VC98\Include\istream
되 다. 궁면, Debug 모드로 따라가 보.string 배 드는 다과 미가 같다.
~cpp string element; cin >> element드 >> 는, string 된 드를 뜯 보면, 단 다과 같 드를 다. 부 발다.
~cpp ... 략 ... if (_Ok) // 력 료되나? 기본로 enter, space 기 료 { // state okay, extract characters ...략... _Str.erase(); // string 공 기 element _TRY_IO_BEGIN // 리 /// 력 문 길 내고, 공 _Mysizt _Size = 0 < _Istr.width() && (_Mysizt)_Istr.width() < _Str.max_size() ? (_Mysizt)_Istr.width() : _Str.max_size(); ...략... /// 면, 문를 string 더는 for (; 0 < _Size; --_Size, _Meta = _Istr.rdbuf()->snextc()) ...략... _Str.append(1, _Traits::to_char_type(_Meta)); // 문를 나 더다. 때, string 객가 // 로 메모리를 당다. ...략...그러나, 다과 같 드
~cpp char* element; cin >> element;는 단 력값 는 드가 다과 같다. 동 과 다.
~cpp ...략... *_Str++ = _Traits::to_char_type(_Meta); // _Str char* element 다. , 문를 는 공 당는 드가 다. // 그래, element가 가리는 는 곳 값 려고 다. // 만 그공 OS 보래 로그램 근 는 라면, // 로그램 다. ...략...
리 떻게 는 모르겠..곳 고 를 로 만들 나?
그리고 방법나, 들 말 기로 따라가 보면 다. 그러나 단발 게 많 들 는 보 두드러기가 날 모르겠군. ^^;; 는 그 링 다. --NeoCoin
그리고 방법나, 들 말 기로 따라가 보면 다. 그러나 단발 게 많 들 는 보 두드러기가 날 모르겠군. ^^;; 는 그 링 다. --NeoCoin
ps. 반 데블 를 대 ZeroWiki 방법 대 부던것 같다. 만, 가 기가 될 것 같다.
~cpp #include <iostream> #include <string> using namespace std; const int ASIZE = 5; void main() { string array[ASIZE]; int tail = 0, status = 3; int select, count; for(int i = 0 ; i < ASIZE ; i++) array[i] = "empty"; //#1 do { cout << "1. PUSH 2. Pop 3. Stack 4. Queue 5. Show 6. Exit" << endl; cin >> select; switch(select) { case 1 : cout << "력 : "; if (tail == ASIZE) { cout << " 로 다." << endl; break; } cin >> array[tail]; tail++; break; case 2 : if(status == 4) // { array[0] = "empty"; //#2 tail--; for(count = 0 ; count < tail ; count++) array[count] = array[count+1]; } else // { tail--; array[tail] = "empty"; //#3 } break; case 3 : status = 3; break; case 4 : status = 4; break; case 5 : for(count = 0 ; count < tail ; count++) { cout << array[count] << "]\t"; } cout << endl; break; case 6 : break; default : cout << " 1부 6까 를 력 " << endl; } }while(select != 6); }