일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- html youtube
- html code
- #성적관리프로그램
- html object
- #binary
- html id
- html charset
- 토큰경제
- html plug-in
- #2차원배열
- html multimedia
- #C++ has~a
- #CallByAddress
- #자바상속#자바이즈어#is~a
- #3차원배열
- #android activity
- git flow
- border-box
- #1차원배열
- relative path
- #C++ 연산자함수오버로딩
- hyperledger transaction
- html5 new tag
- #bubbleSort
- #JAVASCRIPT
- #다차원포인터
- 하이퍼레저패브릭
- docker example
- html video
- mac terminal command
- Today
- Total
A sentimental robot
문자열 본문
문자열
문자열의 크기는 실제 문자 개수+1 byte( 널문자 / \0 / NULL )
널문자는 문자열의 끝을 알려주는 역할을 한다.
문자열"A"는 2 byte인데 A가 1 byte이고 널문자가 1 byte를 차지한다.
문자열은 입력도 주소 값 ,출력도 주소값을 사용한다. ★
문자열은 항상 널을 만날 때까지 출력된다.
- 문자열 배열은 선언과 동시에 초기화를 해야하고, 선언 후 따로 초기화는 불가능하다. 그러므로 선언 후 따로 초기화를 하려면 string 헤더 파일을 선언하고 strcpy함수를 이용해 문자열을 복사해야한다.
#include<stdio.h>
#include<string.h> // 문자열함수 헤더파일
#pragma warning(disable:4996)
void main(){
char name[20];
int len;
gets(&name[0]); // 문자열 입력함수
puts(name); // 문자열 출력함수
len=strlen(name); // 널문자를 제외한 실제 문자열 길이를 리턴해주는 함수(-1 byte)
// 값을 리턴해주기 때문에 call by value
printf("len=%d\n",len);
}
#include<stdio.h>
#include<string.h>
#pragma warning(disable:4996)
void main(){
char name[20]={"eunbi"};
char buf[20];
int r;
strcpy(buf,"zombie"); // 문자열 복사함수
puts(name);
puts(buf);
r=strcmp(name,buf); // 문자열 비교 함수
//문자열이 서로 같으면 return 0, 0이 아니면 다름
printf("%d\n",r);
strcat(buf,name); //문자열 결합함수
//결합할 공간(메모리)이 미리 있는 지 확인~ buf[20]에서 자리 있음!
//buf[20]이 아니라 buf[10]라면 결합할 시 stack overflow 발생
printf("%s",buf);
}
'C ' 카테고리의 다른 글
Call by address (0) | 2018.01.02 |
---|---|
문자열 비교함수 (0) | 2018.01.02 |
for문 연습 (0) | 2018.01.02 |
표 만들기 (0) | 2018.01.02 |
Recursive Function making header file (0) | 2018.01.02 |