문자열 함수 총정리
strncpy함수와 strcat함수를 이용하여 문제를 하나 풀어보자.
s1[100] = "TEST WORLD"
S2[100] = HELLO ";
temp[100];
을 선언하고
출력은 "TEST HELLO WORLD"로 출력하시오
--------------------------------------------------------------------
int main() 토큰은 4개 있음.(int 1개 main 1개 ( 1개 ) 1개) 총 4개.
토큰 = 분석할때 최소단위가 토큰이다.
Standard Library = 자주 쓰는것을 미리 모아 표준으로 해놓은것.(가장 대표적인게 printf)
strchr(word, 'E');에서 두번째 인자 'E'를 하면 EF 123 이출력되고, 아스키코드 번호 69번으로 해도 똑같은 결과가 나온다.
위의 스샷에 F 123이라는 결과가 나오려면 70을 입력해주면되고, 뒤에 숫자 123을 출력하고 싶으면, '123'을 해주면된다.(!꼭 작은따옴표안의 '123'이라 써줘여한다.)
!!!! strrchr 함수 예) char *strrchr( const char *string, int c);
= string 내에서 문자 'c'가 마지막으로 나타나는 위치를 반환한다.
프로그램 예)
= trrchr함수는 마지막 글자를 찾으므로 'E'가 선언되어있으면, 마지막 E를 찾아 그다음부터 출력한다.
프로그램 예제 p8-9.c) 문자열 함수를 이용하는 프로그램
atoi함수!!!!!
* 숫자 123을 문자 "123"으로 변형하는 프로그램.
프로그램 예 p8-10.c) itoa() 함수와 atoi() 함수의 사용
프로그램 예 p8-11.c) 학생의 이름을 입력하여 컴퓨터학과 학생인지를 판단하는 프로그램.
for 문안의 i < 5에서 5대신 MAXSTD를 써도 된다.
gets (name); = 문자열을 입력받는데 name이 15바이트이니 15바이트까지 입력받아진다.
if (strcmp (student[i], name) == 0) yes = 1; 은 입력한 이름과 똑같은 이름을 찾는다.
찾으면 1, 못찾으면 0으로 표시되고 밑에 결과값 yes, no로 나눠져서 출력한다.
그리고 if (yes)라는 줄이 21번째 줄에있는데 if (1 == yes)라고 표시해주는것이 올바른 표기이다.
프로그램 예 p8-12.c) 문자열을 다루는 2차원 배열에 이름을 키보드로부터 읽어들이는 프로그램.
char student[5][20];은 5개의 이름을 입력받을수 있는데, 20(은 0포함이니 19가됨) 19글자까지 읽어진다. (단, 한글은 9글자까지.. 왜냐하면 한글은 1자당 2바이트이기 때문이다)
gers (student[i]); = 입력받은걸 출력해낸다.
프로그램 예 p8-14.c) 문자열 포인터를 이용하여 이름을 알파벳순으로 정렬하는 프로그램.
10 * 15 = 150 총150바이트
while문은 10번만 돈다.
2중 for문인 경우 버블 정렬이다.
26번줄중 (stptr[i], stptr[j] > 0)는 stptr[i] > stptr[j]로 바꿔쓸수있다.
왼족이 클경우 서로 위치를 바꾼다.
실제 데이터는 안변했지만 포인터가 가르키는 방향만 바뀌었다.
8.8 main() 함수의 인수
main()함수에 인자를 넣어 문자열로 string[]을 출력해보는 프로그램.
./10 jaeuk 이라고 실행했을경우
[0]이면 [0]에 해당하는 ./10 이 출력되고,
[1]이면 [1]에 해당되는 jaeuk이 출력된다.
./10 jaeuk
[0] [1] 이런식으로 띄워쓰기할때마다 배열이 한칸씩 증가한다.
printf로 iNum을 출력하면,
결과를 실행시키는 문자의 띄워쓰기만큼 그 갯수가 출력된다.
./main jaeuk eun
1 2 3 = 이므로 3이 뜬다.
if문을 이용한 main(함수)를 넣어 메세지를 출력해보는 프로그램.
./10 만 입력하면 "인자를 한개만 입력하시오" 라는 메세지가 뜨고
./10 jaeuk를 입력하면 "프로그램 실행" 이라는 메세지가 뜬다.
프로그램 예제 p8-15.c) 명령어행을 출력하는 프로그램
결과를 실행하는 명령어를 띄워쓰기를 기준으로 갯수를 세고, argv[]배열안에 하나씩 출력한다.
'코스웨어 > 12년 내장형하드웨어' 카테고리의 다른 글
ARM보드 프로그램 설치/파일넣기 (0) | 2012.07.18 |
---|---|
포인터의 개념 (0) | 2012.07.18 |
ARM (0) | 2012.07.18 |
2012. 07.17 일자 API 수업 정리자료 입니다. (과제 포함) (0) | 2012.07.18 |
소스 인사이트 단축키 및 한글입력팁 (1) | 2012.07.18 |
LCD와 타이밍도 (0) | 2012.07.18 |
프로그램의 실행과 오류 정리 (0) | 2012.07.18 |
ARM LED 설정하기. (0) | 2012.07.18 |