레이블이 프로그래밍인 게시물을 표시합니다. 모든 게시물 표시
레이블이 프로그래밍인 게시물을 표시합니다. 모든 게시물 표시

2014년 7월 13일 일요일

Call By Pointer를 이용하여 함수를 이용해 String형 문자열을 입력하는 방법

요즘 숭실대에서 프로그래밍 수업을 수강하고 있는데 수업 진행방식이 꽤 스파르타이다ㅠㅠ

역시 한달만에 C언어를 돌파한다는건 쉬운일이 아닌가 보다..

지금까지 과제는 잘 수행했는데 이번 주말과제는 좀 막혔던것 같다.

특히 마지막 문제가 잘 안풀렸는데

Input() 함수를 이용해서 '문자열'을 입력한 다음 이 문자열을 output()로 이동시킨다음 출력하는 문제였다.

처음에 보고 "별거 아니네?" 라고 생각했는데 생각보다 잘 안된다;;


처음엔 이렇게 짜보았다.
------------------------------------

int main(){
char * namestr;
namestr = input_name();
printf("입력결과 : %s",&namestr);

}


char * input_name(){

char * name;
char name_input[100];
printf("입력 : ");
scanf("%s",name_input);
name = name_input;
return name;

}
------------------------------------

input 함수에서 문자열을 입력받고 그 문자열의 주소를 반환했는데.

이게 될리가 없었지....; input_name()함수가 끝나면 name_input[100]과 name에 할당된 공간은 전부 삭제된다.

그래서 이렇게 다시 짜 보았다.

------------------------------------
int main(){
char name[100];
input_name(name);

output(name);
return 0;


}
void input_name(char *name){
printf("# 성명 입력 : ");
gets(name);
return;
}
void output(char *name){
printf("%s씨의 키는 ",name);
}
------------------------------------

main함수에 변수의 주소를 함수로 넘겨주고,
함수속에서는 단순히 할당받은 주소로 문자열을 전송해주거나
주소의 문자열을 출력해주는 역할 만 한다.

과제 끝!

2014년 4월 29일 화요일

c++ 다이아몬드 만들기


너무 오랜만에 프로그래밍해서 다이아몬드 만드는것도 헤맴;;

자주자주해야지;


-----------------------------------------------------------------------------

#include <iostream>
using namespace std;

int main(){
int count = 0;
for(int i = 0;i<9;i++){
for(int j = 0;j<9;j++){
if(j < 8-i){
cout << "  ";
}else {
cout << "ⓞ";
}
}
count = 0;
while(count < 9){
if(count <i){
cout << "ⓞ";
}else{
cout << "  ";
}
count++;
}
cout << endl;
}
for(int i = 0;i<8;i++){
for(int j = 0;j<8;j++){
if(i < j){
cout << "ⓞ";
}else {
cout << "  ";
}
}
count = 0;
while(count < 8){
if(count <i){
cout << "";
}else{
cout << "ⓞ";
}
count++;
}
cout << endl;
}



return 0;
}