본문 바로가기
코스웨어/12년 내장형하드웨어

문자열 함수 정리

by 알 수 없는 사용자 2012. 7. 18.
728x90
반응형

문자열 함수 총정리

 

 

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[]배열안에 하나씩 출력한다.

 

728x90