반응형

char형 배열에 문자열을 입력 받고 문자열의 길이를 구하여 출력하는 프로그램

 

[결과]

 

 

 

[소스코드1]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
int main(void)
{
    char ch[20= "";
    scanf("%s", ch);
    int i = 0;
    int length = 0;
    for (i = 0; ch[i] != '\0'; i++)
    {
        length++;
    }
    printf("문자열%s의 길이는 %d",ch,length);
    return 0;
}
cs

 

[설명]

length 변수를 0으로 초기화 해주고

반복문으로 ch변수의[i]번지 값이 '\0' NULL값이 올때까지 반복시키면서 length를 누적시켜준다.

 

 

 

[소스코드2]

1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
#include <string.h>
int main(void)
{
    char ch[20= "";
    scanf("%s", ch);
    int length = strlen(ch);
    printf("문자열%s의 길이는 %d",ch,length);
    return 0;
}
cs

 

[설명]

string.h 헤더파일을 추가해준다.

length 라는 변수를 만들어주고 strlen(문자열 변수)를 해주면 길이가 나온다.

int length = strlen(ch);

 

 

 


scanf 를 사용해 문자열을 받으면 띄어쓰기 이후의 문자열은 계산을 안한다.

 

왜냐하면 scanf는 space, tab, '\n'을 만나면 입력버퍼에 데이터를 넣는다.

 

scanf 대신에 gets_s(배열명,사이즈); 를 사용해준다.

 

gets_s 는 '\n'을 만날때까지 입력 버퍼에 데이터를 넣는 것을 보류하기 때문이다.

 

 

 

[결과]

 

 

 

[소스코드]

1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
#include <string.h>
int main(void)
{
    char ch[20= "";
    gets_s(ch, sizeof(ch));
    int length = strlen(ch);
    printf("문자열%s의 길이는 %d",ch,length);
    return 0;
}
cs
반응형

+ Recent posts