14일차 - 문자열
소개
C에서 문자열은 내장 유형이 아닙니다. C-스트링은 null 문자, "
\0
"로 끝나는 1차원 문자 배열을 갖는 규칙입니다.이것은 "
abc
"의 내용을 가진 C-스트링이 4개의 문자 'a
', 'b
', 'c
' 및 '\0
'를 갖는다는 것을 의미합니다.문자열 리터럴
문자열 리터럴은 char의 null 종료 정적 지속 시간 배열을 나타냅니다. 정적 저장 기간이 있기 때문에 문자열 리터럴 또는 동일한 기본 배열에 대한 포인터는 자동 배열에 대한 포인터가 사용할 수 없는 여러 가지 방법으로 안전하게 사용할 수 있습니다.
예시:
const char *hello = "World";
위와 같이 a
char *
를 문자열 상수로 초기화할 때 일반적으로 문자열 자체는 읽기 전용 데이터로 할당됩니다. 문자열은 배열의 첫 번째 요소인 문자 'h'에 대한 포인터입니다.문자열 리터럴은 읽기 전용 메모리에 할당되므로 수정할 수 없습니다. 수정하려고 하면 정의되지 않은 동작이 발생하므로
const
를 추가하는 것이 좋습니다.수정 가능한 문자열을 만들려면 다음과 같이 문자 배열을 선언하고 문자열 리터럴을 사용하여 해당 내용을 초기화할 수 있습니다.
char modifiable_string[] = "hello world";
예시:
#include <stdio.h>
void main() {
const char *hello = "World";
char foo[] = "bar";
printf("%s\n",hello);
printf("%s\n",foo);
foo[0] = 'B';
printf("%s",foo);
}
출력 -
World
bar
Bar
길이 계산: strlen()
예시:
#include <stdio.h>
#include <string.h>
void main() {
const char *str = "Hello World";
int len = strlen(str);
printf("%d\n", len); // 11
}
Note -
strlen
doesn't count '\0' while calculating the length of a string.
두 문자열 연결
소스 문자열과 대상 문자열은 대상 문자열을 소스 문자열에 복사하는 "
strcat
"함수에 제공됩니다. 소스 문자열이 변경됩니다.strcat(source,target);
예시:
#include <stdio.h>
#include <string.h>
void main() {
char first[] = "Hello";
char second[] = " World";
strcat(first,second);
printf("%s\n",first); // Hello World
printf("%s\n",second); // World
}
문자열이 다른 문자열의 구성 요소인지 확인합니다.
strstr(s1, s2)
문자열 s1에서 문자열 s2의 첫 번째 항목을 찾습니다.예시:
#include <stdio.h>
#include <string.h>
void main() {
char first[] = "Hello World in this World";
char second[] = "World";
char *i;
i = strstr(first,second);
printf("%s\n",i); // World in this World
}
사용할 수 있는 색인을 찾으려면
strlen
.예시:
#include <stdio.h>
#include <string.h>
void main() {
char first[] = "Hello World in this World";
char second[] = "World";
int i;
i = strlen(first) - strlen(strstr(first,second));
printf("%d\n",i); // 6
}
Reference
이 문제에 관하여(14일차 - 문자열), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/envoy_/day-14-strings-3mah텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)