반응형
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 |
반응형
'IT' 카테고리의 다른 글
| [백준][C] 10817번 세 수 (0) | 2020.07.07 |
|---|---|
| [C언어] 버블정렬 (0) | 2020.07.07 |
| [백준][C] 5543번 상근날드 (0) | 2020.07.06 |
| [백준][C] 10039번 평균 점수 (0) | 2020.07.05 |
| [C언어][수식과 연산자] 100보다작은 정수를 입력받아 십의자리, 일의자리 분리 (0) | 2020.07.05 |