- 문자열 길이 구하는 함수 작성하기
int GetStringLength(char data[])
{
int count = 0;
/* 0이 나올 때까지 문자의 개수를 더한다 */
while (data[count]) count++; /* while(data[count] != 0) count++; 과 동일 */
/* 문자열의 길이를 반환한다 */
return count;
}
<swap 함수>
#include <stdio.h>
/* temp 변수를 이용하여 a와 b의 값을 서로 바꿈 */
void Swap(int *pa, int *pb)
{
int temp = *pa; /* *pa(start) = 96, *pb(end) = 5 */
*pa = *pb; /* *pa(start) = 5, *pb(end) = 5 */
*pb = temp; /* *pa(start) = 5, *pb(end) = 96 */
}
void main()
{
int start = 96, end = 5;
printf("before : start = %d, end = %d\n", start, end);
if (start > end) {
Swap(&start, &end); /* start와 end의 값을 바꾸기 위해서 Swap 호출 */
}
printf("after : start = %d, end = %d\n", start, end);
}
<gets로 제한된길이의 문자열 입력 받기>
#include <stdio.h>
/* buffer : 사용자가 입력한 문자열을 저장할 배열
limit : 최대 입력 가능한 문자 개수
이 함수가 1을 반환하면 정상 입력되었다는 뜻이고
0을 반환하면 너무 길게 입력해서 제한된 개수만 받았다는 뜻이다 */
int GetMyString(char buffer[], int limit)
{
int i;
for (i = 0; i < limit; i++) { /* 최대 개수만큼만 반복 한다 */
buffer[i] = getchar();
if (buffer[i] == '\n') { /* [Enter] 키가 체크되면 사용자의 입력이
완료 되었다는 뜻이기 때문에 문자열을 완성시키고 함수 종료한다 */
buffer[i] = 0; /* [Enter] 키 위치에 0을 넣어서 문자열 완성 */
return 1; /* 정상적으로 입력이 완료됨 */
}
}
/* 반복문을 빠져 나왔다는 뜻은 입력 개수 제한을 초과했다는 뜻이기
때문에 현재 위치에 0을 넣고 문자열 구성을 완료 */
buffer[i] = 0;
rewind(stdin); /* 표준 입력 버퍼에 남아있는 문자들을 제거함 */
return 0; /* 입력 초과 현상이 발생했음을 알림 */
}
void main()
{
char temp[10];
int state;
/* 사용자에게 최대 9개까지만 입력받겠다고 제안함 */
state = GetMyString(temp, 9);
if (state == 1) printf("input : %s\n", temp); /* 정상 입력 */
else printf("input : %s -> out of range\n", temp); /* 범위를 초과 */
}
<문자열 정수 변환 ArraytoInteger >
int ArrayToInteger(char string[])
{
int count = 0, num = 0;
/* 문자열이 끝날 때까지 반복 */
while(string[count] != 0){
/* 반복할 때마다 이전 값에 10을 곱해서 자릿수를 증가시킴 */
num = num * 10 + string[count] - '0';
count++; /* 다음 문자로 이동 */
}
return num;
}
'FW 심화 과정 > [2] STM32심화실습' 카테고리의 다른 글
0804 인터럽트 ** (0) | 2022.08.04 |
---|---|
0803 NVIC, BUS Interfaces (0) | 2022.08.03 |
0802 어셈블리어로 보드 제어 (sw / led) (0) | 2022.08.02 |
0729 C프로그래밍 기초 17~ (0) | 2022.07.29 |
0728 C프로그래밍 기초 15~16강 (0) | 2022.07.28 |
0727 C프로그래밍 기초 14강 (0) | 2022.07.27 |