[ create a new paste ] login | about

Link: http://codepad.org/xZpneYQU    [ raw code | output | fork ]

박정욱 - C++, pasted on May 19:
//객체지향 금 123	200911636 박정욱
//2012.5.18		5번 : 17-4 경로의 디렉토리만 출력
#include<iostream>
#include<string>
using namespace std;

char* string_reverse(string file);								//문자열을 거꾸로 바꿔서 리턴해주는 함수
char* string_cut_name(string file);								//거꾸로 된 문자열의 파일명 부분을 삭제하여 리턴하는 함수
void  cut_name_of_directory(string directory);					//파일명을 자르는 과정을 출력하는 함수.

//메인함수
void main()
{
	string example =											//파일대상이 입력된 문자열 변수 example.
		"C:\\Program Files\\Starcraft\\StarCraft.exe";			

	string File;												//사용자로부터 파일대상을 입력받을 문자열 변수 file
	
	cout << example << endl;									//example의 파일대상 출력.
	cut_name_of_directory(example);								//example의 파일경로 추출.

	cout << "파일대상을 입력하십시오."<< endl;					//파일대상 입력.
	cin  >> File;
	cut_name_of_directory(File);								//입력받은 파일대상의 파일경로 추출.

}

//파일명을 자르는 과정을 출력하는 함수.
void  cut_name_of_directory(string directory)					//파일대상을 거꾸로 한후, 처음 "\"를 찾아 그 이하의 문자열을 다시 거꾸로 하여
{																//최종적으로 파일명을 제외한 파일 경로를 출력한다.
	string reverse,
		   reverse_cut_name,
		   cut_name;

	//cout << directory << endl;								//파일경로를 출력하여 보여준다(파일명 포함)

	reverse = string_reverse(directory);						//파일경로를 거꾸로한다
	//cout <<"reverse = "<< reverse << endl;					//거꾸로 된 파일경로를 출력하여 보여준다.
	
	reverse_cut_name = string_cut_name(reverse);				//거꾸로 된 파일경로에서 파일명 부분을 삭제한다.
	//cout <<"reverse_cut_name = "<< reverse_cut_name << endl;	//파일명이 삭제된 거꾸로 된 파일경로를 출력하여 보여준다.

	cut_name = string_reverse(reverse_cut_name);				//파일명이 삭제된 거꾸로 된 경로를 다시 거꾸로한다.
	cout <<"파일 경로는	" << cut_name <<"입니다."<< endl;		//최종적으로 파일명이 삭제된 경로를 출력하여 보여준다.
	
}

//문자열을 거꾸로 바꿔서 리턴해주는 함수
char* string_reverse(string file)								//for문을 이용해 file의 문자열을 거꾸로 하여 리턴한다.
{
	char* reverse;												//함수 인자(문자열) file을 거꾸로 대입할 변수 reverse
	int i;														//for문을 사용하기 위한 변수 i

	reverse = new char [file.size()+1];							//file의 크기만큼 메모리 할당.

	for(i=0 ; i < file.size() ; i++)							//reverse에 file을 거꾸로 대입.
	{	reverse[i] = file[file.size()-1-i];	}					
	reverse[i] = NULL;											//reverse의 마지막은 NULL을 대입.

	return reverse;												//거꾸로 입력된 reverse를 리턴한다.
}

//거꾸로 된 문자열의 파일명 부분을 삭제하여 리턴하는 함수
char* string_cut_name(string file)								//find함수를 이용해 "\"를 찾아 \의 이전부분을 제외한 file의 문자열을 리턴한다.
{
	char* cut_name;												//함수 인자(문자열) file의 파일명 부분을 삭제하여 대입 할 변수
	int i;														//for문을 사용하기 위한 변수 i

	cut_name = new char [file.size()-file.find("\\")+1];		//file의 크기 - 파일명 크기 만큼 메모리 할당.

	for(i=0 ; i < file.size()-file.find("\\") ; i++)			//file명 부분을 제외한 문자열을 cut_name에 대입.
	{	cut_name[i] = file[file.find("\\")+i];	}				

	cut_name[i]= NULL;											//cut_name의 마지막 부분은 NULL을 대입.
		
	return cut_name;											//cut_name을 리턴한다.
}


Output:
1
2
Line 12: error: '::main' must return 'int'
compilation terminated due to -Wfatal-errors.


Create a new paste based on this one


Comments: