반응형
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 |
반응형
'<Programming> > <C>' 카테고리의 다른 글
[C언어] 문자열 (strlen) (0) | 2020.07.10 |
---|---|
[C언어] 버블정렬 (0) | 2020.07.07 |
[C언어][수식과 연산자] 100보다작은 정수를 입력받아 십의자리, 일의자리 분리 (0) | 2020.07.05 |
[C언어] EOF란? (0) | 2020.07.04 |
[C언어][수식과 연산자] cm를 입력받아 피트와 인치로 변환 (0) | 2020.07.04 |