문자열 입력받기

Mokwon Univ 2008. 8. 16. 16:52
문자열을 size만큼 입력 받아옴
 
1. 첫번째 인자는 입력받을 배열이름을 인자로 두고 두번째 인자는 원하는 크기
2. fgets()로 받아올때 나오는 개행문자('n') 를 NULL('') 로 교체해줌
3. 입력없이 Enter만 눌렀거나 Space(공백) 만 누를 경우 다시 입력
4. 공백제거
 
 
void input_string(char* temp, int size)
{
    int len = 0, i = 0, j = 0;
    char imsi[MAX_BUF_SIZE]={0};
   
    do
    {
        system("CLS");
        j = 0;
        printf(" 입력 : ");
        fflush(stdin);        // stdin 버퍼 비우기
        fgets(imsi, MAX_BUF_SIZE, stdin);   // 입력
        len = strlen(imsi);
   
        // 공백을 제거하기 위한 루틴
        for( i = 0 ; i < len ; i++ )
        {
            // 공백이 아닐 경우에만 저장 하고 j++
            if(imsi[i] != ' ' && imsi[i] != 'n')
            {
                temp[j] = imsi[i];
                j++;
            }
            // NULL값을 넣어주기 위해 매개변수 size 보다 한개 작을때 break
            if( j == size - 1 )
            {
                break;
            }
        }
        temp[j] = '';  // NULL('') 을 넣어줌
    }
    while( strlen(temp) == 0 ); // 입력이 없을 경우 다시 입력 받음
}
Posted by 용학도리
,