문자열이란 ?
: 문자열 코드값들 + NULL 값
문자열 상수 = > 시작주소값 반환.
"Hello(NULL) "; 널까지 포함된다.
문자열
1. 배열을 이용 : 데이터를 복사 함으로써 자신의 공간을 할당받기때문에 변경 가능하다.
char s[] = "hello";
*s = 'T';
2. 포인터변수를 이용 : 원본을 참조만 하기 때문에.. "Hello" 는 문자열 상수이기 때문에 변경 불가능
char *p = "hello";
*p = 't';// 변경이 불가능하다. // 주소값을 참조만 하기 때문에.
char *q= s;
*q = 't'; // 이건 변경가능하다.
문자열 집합을
"hello" , "android", "gandus" , "bye" 이걸 저장하려면
2차원 배열을 이용
char s[7][10] = {"hello" , "android", "gandus" , "bye"} ;
strcpy(s[0], "Mon"); // 이것은 변경이 가능하다.
스왑 할려면
char temp[10]; // 배열을 복사받아서,... 스왑가능.
strcpy (temp, s[i]);
strcpy (s[i], s[j]);
strcpy (s[j], s[i]);
포인터 배열을 이용
char * s[7] = {"hello" , "android", "gandus" , "bye"}; // 28바이트의 공간, 7개의 주소를 담고있다.
strcpy(s[0] , "mon"); // 이것은 불가능하다. 복사를 할수 없기때문.
p[0] = "Mon" // 이것은 가능하다. 주소를 변경하는것이라..
s[i], s[j] 를 스왑할려면
char *temp; // 주소를 이용하면 스왑가능.
temp = p[i];
p[i]=p[j];
p[j] = temp;
3. 배열 이름에 대입은 불가능
char p[20];
p = "hello"; //불가능하다.
// p는 배열의 시작주소, 상수 값이라.....
strcpy( p, "hello") 의 함수 형식은
void strcpy( char *d , const char * s); // 이런형식의 문제가 나온다.
4. STRTOK ( s, " " ) // 처음 호출시
그 다음부터는 strtok( NULL, " " ) ; // 이전의 배열을 사용한다는 뜻이다.
: 문자열 코드값들 + NULL 값
문자열 상수 = > 시작주소값 반환.
"Hello(NULL) "; 널까지 포함된다.
문자열
1. 배열을 이용 : 데이터를 복사 함으로써 자신의 공간을 할당받기때문에 변경 가능하다.
char s[] = "hello";
*s = 'T';
2. 포인터변수를 이용 : 원본을 참조만 하기 때문에.. "Hello" 는 문자열 상수이기 때문에 변경 불가능
char *p = "hello";
*p = 't';// 변경이 불가능하다. // 주소값을 참조만 하기 때문에.
char *q= s;
*q = 't'; // 이건 변경가능하다.
문자열 집합을
"hello" , "android", "gandus" , "bye" 이걸 저장하려면
2차원 배열을 이용
char s[7][10] = {"hello" , "android", "gandus" , "bye"} ;
strcpy(s[0], "Mon"); // 이것은 변경이 가능하다.
스왑 할려면
char temp[10]; // 배열을 복사받아서,... 스왑가능.
strcpy (temp, s[i]);
strcpy (s[i], s[j]);
strcpy (s[j], s[i]);
포인터 배열을 이용
char * s[7] = {"hello" , "android", "gandus" , "bye"}; // 28바이트의 공간, 7개의 주소를 담고있다.
strcpy(s[0] , "mon"); // 이것은 불가능하다. 복사를 할수 없기때문.
p[0] = "Mon" // 이것은 가능하다. 주소를 변경하는것이라..
s[i], s[j] 를 스왑할려면
char *temp; // 주소를 이용하면 스왑가능.
temp = p[i];
p[i]=p[j];
p[j] = temp;
3. 배열 이름에 대입은 불가능
char p[20];
p = "hello"; //불가능하다.
// p는 배열의 시작주소, 상수 값이라.....
strcpy( p, "hello") 의 함수 형식은
void strcpy( char *d , const char * s); // 이런형식의 문제가 나온다.
4. STRTOK ( s, " " ) // 처음 호출시
그 다음부터는 strtok( NULL, " " ) ; // 이전의 배열을 사용한다는 뜻이다.