Turbo-C
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
터보-C 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
Lua 게시판
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C/C++ Q/A
[4867] Re:함수와 포인터에 대한 질문입니다.
진수.네모 [miman101] 1360 읽음    2005-01-04 20:38
첫번째 예제도 수정을 가해야 합니다.
for(int j=0;j=='\0';j++)
{
    s1[j]=putchar(ch);
}

왜 이런 구문을 넣었나요? 질문을 할때는 주석을 달아서 올리세요. 그럼 모르는 부분에 대해서 답변을
얻을수 있어서 좋을거 같습니다.
이구문을 필요하지 않습니다.
if 문으로 A ~ Z 인지를 검사한다음 이를 char s1[10]; 에 넣으려 한것이라면....

int j = 0;
while(ch = getchar......)
{
    if(검사 A ~ Z)
    {  
        s1[j] = ch;
        j++;
    }
}

s1[j] = '\0';  // 문자열이 끝을 위해 종료 문자를 넣어줌.
                      // 이것을 안넣어 주면 문자열 끝에 이상한 찌거기가 붙음.

해야 겠죠...

두번째... 함수를 선언할때 mm(char *); 라고 했는데 이는 잘못된 것입니다. 반듯이 리턴 형을 명시해줘야 합니다.
void mm(char *); 또는 char* mm(char*); 처럼...
절대 생략하지마시오.

리턴형도 명시해 주지 않고 mm() 함수내에 return 을 사용했네요..

그리고 이런 문제를 풀기위해서는 메모리 동적 할당을 알거나... 대문자 배열( 가령 main 에서 s1[10])의 포인터를 넘겨 거기에 직접 넣어야합니다.

우선 이부분부터 알아보세요.


한성현 님이 쓰신 글 :
: 제가 하는 것은.
: 입력값이
: COmmon Business Oriented Language
: 라면
: 출력갑이
: COBOL is COmmon BUsiness Oriented LAnguage
: 가 되는
: 대문자를 추출하는 것입니다.
: 그냥 대문자만 출력하는건 되는데여..
: 아니 그것도 getchar()로 해서 이상합니다.
: gets() 를 쓰고 함수로 정리를 한다면
: 어떻게 해야 되는지 궁금합니다.
:
: #include <stdio.h>
: #include <string.h>
:
: /*
: void main()
: {
:     int ch;
:     char s1[10];
:        
:     while((ch=getchar())!='\n')
:     {
:         if(ch>='A' && ch<='Z')
:         {
:             for(int j=0;j=='\0';j++)
:             {
:                 s1[j]=putchar(ch);
:             }
:         }
:         }
:    
:     printf("%s \n",s1);
: } */
: mm(char *);
: void main()
: {
:     static char s[50];
:     gets(s);
:
:     printf("%s is %s\n",mm(s),s);
: }
:
: mm(char *s)
: {
:     int i;
:     char s1[10];
:
:     for(i=0;i<=50;i++)
:     {
:         if(*(s+i)>='A' && *(s+i)<='Z')
:         {
:             for(int j=0;j=='\0';j++)
:                         {
:                 s1[j]=*(s+i);
:             }
:         }
:     }
:     return(*s1);
: }
:                    
: 위에 주석으로 되있는게 대문자만 거르는 것입니다.
: 이걸 함수로 만들어서 이용할려고 하는데 잘 안됩니다.
: 가르침 부탁드립니다~~

+ -

관련 글 리스트
4866 함수와 포인터에 대한 질문입니다. 한성현 1210 2005/01/04
4966     Re:함수와 포인터에 대한 질문입니다. 1271 2005/03/23
4867     Re:함수와 포인터에 대한 질문입니다. 진수.네모 1360 2005/01/04
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.