E D R , A S I H C RSS

String OfCPlus Plus


1. C++ 에서 문자열 다루기

  • 1학년 여름 방학때 제로페이지에서 했었던 걸로 나름대로 재미도 있고 할만한거 같아서 이렇게 올렸습니다.

2. 선행되어야 할 학습

  • 클래스에 대한 이해(아마 1학년들은 클래스를 배우지 않았을거 같기 때문에)
    • 클래스 생성
    • 클래스에서 메소드 생성
    • 기타 등등
  • C++에서 연산자 재정의

3. 과제

  • 다음과 같은 기능을 가지는 String 클래스를 설계한다
  • 문자열 길이를 알아내는 기능
  • 문자열을 거꾸로 만들어 주는 기능
  • 찾고자 하는 문자의 갯수를 알려 주는 기능
  • 문자열에 있는 여백을 지워주는 기능
  • 연산자 재정의
    • + 연산자를 재정의 하여 문자열을 합치기
    • << 연산자를 재정의하여 문자열 출력하기

5. 클래스 사용예

  • 스트링 클래스를 실제로 만들어서 써먹을 수 있도록, 아래와 같이 써먹기 좋게 만들었으면 하는 작은 소망이 있습니다~

~cpp 
//usestring.cpp
#include <iostream>
using namespace std;
#include "String0.h"
int main()
{
	String nam("nam sang boy");
	String after=String(" is nice guy");
	cout<<nam<<'\n';
	cout<<after<<'\n'<<nam.nval()<<'\n';
	String sum=nam+after;
	cout<<sum<<'\n';
	nam.reverse();//끝에것이 짤리고 뒤바뀌지 않는 문제 
	cout<<nam<<'\n';
	cout<<"nam class 중 n의 갯수는 "<<nam.search('n')<<"개 \n";
	nam.delspace();//끝에것이 짤리는 문제 
	cout<<nam<<'\n';
	cout<<nam.nval()<<'\n';
	String Test("The reverse function work well in English");
	cout<<Test<<'\n';
	Test.delspace();
	cout<<Test<<'\n';
	Test.reverse();
	cout<<Test<<'\n';

	return 0;
}

6. 심화 문제

  • 위의 과제를 만약 쉽게 해결하는 사람이 있다면 이런 심화 문제가 있을 것입니다.
    • 문장을 파일로 입력 받기
    • 그 문장에 있는 단어들을 순서 대로 배열하기
    • 그 단어들의 반복 횟수 조사하기
    • 그 단어가 나온 라인 조사 하기
    • 총 단어수 출력(중복 제외)
  • DeleteMe)참고 http://kldp.org/HOWTO/html/C Programming-HOWTO/ --상민

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2009-05-27 07:09:19
Processing time 0.2943 sec