홈 > IT > IT정보
IT정보

C언어 함수, 포인터, 동적할당 문제풀기 4-24

3 realdragonhead 0 130 0 0

4-24. 명령어 라인 매개변수(command line parameter)를 한 줄에 하나씩 출력하시오.

<CODE>

#include <stdio.h>
#include <string.h>


int main(int argc, char *argv[]) {
        char * command, * parameter;


        if(argc == 1) {
                puts("usage: ./4-24 <command> <parameter>");
                puts("");
                puts("<command list>");
                puts("--print,  -p");
                return 0;
        }


        if(argc > 3) {
                puts("too many parameter");
                puts("if you want see usage: ./4-24");
                return 0;
        }


        command = argv[1];
        parameter = argv[2];


        if(!strcmp(command,"-p") || !strcmp(command,"--print")) {
                if(argc == 2) {
                        puts("please input parameter");
                        puts("if you want see usage: ./4-24");
                        return 0;
                }
                puts("<input string>");
                printf("%s\n", parameter);
                return 0;
        }else {
                puts("please input right command");
                puts("if you want see usage: ./4-24");
                return 0;
        }
}


<RESULT>

[case 1]

$ ./4-24

usage: ./4-24 <command> <parameter>


<command list>

--print,        -p

[case 2]

$ ./4-24 hello

please input right command

if you want see usage: ./4-24

[case 3]

$ ./4-24 -p

please input parameter

if you want see usage: ./4-24

[case 4]

$ ./4-24 --print

please input parameter

if you want see usage: ./4-24

[case 5]

$ ./4-24 -p hello

<input string>

hello

[case 6]

$ ./4-24 --print hello

<input string>

hello

[case 7]

$ ./4-24 -p hello my

too many parameter

if you want see usage: ./4-24

[case 8]

$ ./4-24 --print hello my

too many parameter

if you want see usage: ./4-24


4-24A. 명령어 라인 매개변수를 문자열 배열(문자형 2차원 배열)에 복사한 후 이를 한 줄에 하나씩 출력하시오(명령어 제외).

<CODE>

#include <stdio.h>
#include <string.h>
#define size 10


int main(int argc, char *argv[]) {
        int count = 0;
        int howmany;
        char * command;
        char * parameter[size];


        if(argc == 1) {
                printf("usage: ./4-24 <command> <parameter1> <parameter2> ... <parameter%d>",size);
                puts("");
                puts("<command list>");
                puts("--print,  -p");
                return 0;
        }


        if(argc > size+2) {
                puts("too many parameter");
                puts("if you want see usage: ./4-24");
                return 0;
        }


        howmany = argc-2;
        command = argv[1];
        while(count < howmany) {
                parameter[count] = argv[count+2];
                count++;
        }


        count=0;


        if(!strcmp(command,"-p") || !strcmp(command,"--print")) {
                if(argc == 2) {
                        puts("please input parameter");
                        puts("if you want see usage: ./4-24");
                        return 0;
                }
                puts("<input string>");
                while(count < howmany) {
                        printf("%s\n", parameter[count]);
                        count++;
                }
                return 0;
        }else {
                puts("please input right command");
                puts("if you want see usage: ./4-24");
                return 0;
        }
}


<RESULT>

[case 1]

$ ./4-24A

usage: ./4-24 <command> <parameter1> <parameter2> ... <parameter10>

<command list>

--print,        -p

[case 2]

$ ./4-24A hello

please input right command

if you want see usage: ./4-24

[case 3]

$ ./4-24A -p

please input parameter

if you want see usage: ./4-24

[case 4]

$ ./4-24A --print

please input parameter

if you want see usage: ./4-24

[case 5]

$ ./4-24A -p hello my name is real dragon head

<input string>

hello

my

name

is

real

dragon

head

[case 6]

$ ./4-24A --print hello my name is real dragon head

<input string>

hello

my

name

is

real

dragon

head

[case 7]

$ ./4-24A -p hello my name is real dragon head ! i want to go home ...

too many parameter

if you want see usage: ./4-24

[case 8]

$ ./4-24A --print hello my name is real dragon head ! i want to go home ...

too many parameter

if you want see usage: ./4-24

0 Comments
Category
State
  • 현재 접속자 37 명
  • 오늘 방문자 454 명
  • 어제 방문자 652 명
  • 최대 방문자 948 명
  • 전체 방문자 145,747 명
  • 전체 게시물 1,763 개
  • 전체 댓글수 248 개
  • 전체 회원수 111 명
Facebook Twitter GooglePlus KakaoStory NaverBand