본문 바로가기
공부,일/c언어

배열&문자열 함수

by fromnothing1 2021. 5. 30.

배열은 상수 포인터 이다 .

배열이 지정하는 주소는 한번 정해지면 변하지 않는다. 

 

char fname[20];
fname = "strubg";

 

"strubg" 는 새로운 strubg 가담겨있는 새로운 주소를 나타냄으로

위 에서 처럼 변수 선언 후 string 을 넣을 수 없다.

 

배열과 다차원 배열 매개 변수 이용하기

#include<stdio.h>

void printGameTitle(char title[]);
void printGameMenu(char menu[][10]);

void printGameTItle(char title[])
{
	printf(" sizeof(title) : %d\n", sizeof(title));
	printf("%s\n", title);
}

void printGameTitle(char title[])
{
}

void printGameMenu(char menu[][10])
{
	int i=1;
	printf(" sizeof(menu) : %d\n", sizeof(menu));  //주소 사이즈를 출력 주소는 항상 4byte
	printf(" sizeof(menu[i]) : %d\n", sizeof(menu[i])); // char[10] 의 size 출력 
	printf(" sizeof(*menu) : %d\n", sizeof(*menu)); // char[10] 의 size 출력 
	printf(" sizeof(*menu+i) : %d\n", sizeof(*(menu+i))); // menu[i] 과 동일
	printf(" *(menu + i) : %s\n", *(menu + i));
	printf(" menu[i] : %s\n", menu[i]);


}
 
int main()
{
	char menu[][10] = { "New Game","Load Game","2 Play","Option","Exit" };
	char title[] = "== TEST GAME==";

	printGameTItle(title);
	printGameMenu(menu);

	return 0;
}

 

gets(),puts()

#include<stdio.h>

int main()
{
	//get() : 문자열 입력 받는 함수 \n 까지의 문자열을 입력 받고  \n->\0 로 교채해준다.
	char str[14];
	gets(str);

	// puts() 문자열을 화면에 출력
	puts(str);


	return 0;
}

 

strlen(),strcpy()

#include<stdio.h>

int main()
{
	// strlen() 문자열 길이 계산 주소가 가리키는 값에서 null(\0)를 만날 때까지 길이 출력

	char* str = "love";
	printf("%d\n",strlen(str));

	char name[20] = "jin won";
	char copy[20] = { 0, };  // 초기 화 할때 , 뒤에 아무것도 쓰지 않으면 0 으로 초기화한다.

	strcpy(copy, name);

	printf("%s, %s \n",name, copy);


	return 0;
}

 

strcat() & strcmp()

strcat() :첫 번째 문자열에 두번째 문자열 붙이는 함수 

strcmp(): 문자열 두개 동일한지 비교  동일하면 0 아니면 다른 숫자

#include<stdio.h>

int main()
{
	
	char fname[40] = "kin";
	char lname[20] = "jin";
	
	strcat(fname, lname);

	printf("%s \n", fname);

	char* test1 = "ab";
	char* test2 = "ab";
	
	printf("%d", strcmp(test1, test2));


	
}

 

'공부,일 > c언어' 카테고리의 다른 글

sizeof 와 포인터 & 배열의 data type  (0) 2021.06.01
void pointer , malloc  (0) 2021.06.01
Code 영역  (0) 2021.05.31
포인터 2 메모리 직접 다루기  (0) 2021.05.26
포인터  (0) 2021.05.24

댓글