문자열과 문자열 처리함수
- 문자배열
- 문자열 입/출력
- 문자열 처리함수
문자배열
c언어에는 문자열을 저장하는 자료형이 존재 X
→배열을 이용
-초기화
1. 자료형 배열이름[배열크기] = "string";
2. 자료형 배열이름[] = "string";
3. 자료형 배열이름[] = {'s', 't', 'r', 'i', 'n', 'g', '\0'};
문자열 입/출력
-입력
1. scnaf("%s", str);
2. gets(str);
-출력
printf("%s", str);
문자열 처리함수
헤더 : <string.h>
1. strlen() : 문자열의 길이를 구하는 함수
2. strcpy() : 문자열을 복사하는 함수
strcpy (받을 문자열, 복사할 문자열);
ex) strcpy (str1, str2);
: str1에 str2를 복사
2-1. strcpy_s()
strcpy_s (받을 문자열, 최대 길이, 복사할 문자열);
: 받을 문자열에 복사할 문자열을 최대 길이만큼 복사
최대 길이가 복사할 문자열보다 작다면 에러 발생
3. strcat() : 두 개의 문자열을 하나의 문자열로 연결시키는 함수
strcat (받을 문자열, 붙일 문자열);
ex) strcat (str1, str2);
: str1 뒤에 str2을 덧 붙임
3-1. strcat_s()
strcat_s (받을 문자열, 최대 길이, 붙일 문자열);
: 받을 문자열 + 붙일 문자열이 최대 길이보다 크면 에러 발생
4. strcmp() : 두 개의 문자열을 비교
strcmp (str1, str2)
str1 > str2 : 1
str1 < str2 : -1
str1 == str2 : 0
-대소문자 구분 : A<B<C< ... <Z<a<b<...<z
5. strstr() : 문자열 안에서 부분 문자열을 검색하는 함수
strstr (문자열, 부분문자열);
int main(void) { char s[] = “black is color”; //&s[10] == p char sub[] = “color”; char *p; p = strstr(s, sub); return 0; } |
#include <stdio.h>
#include <string.h>
int main() {
char str1[20];
char str2[20] = "nothing";
char sub[] = "icecream";
char *p;
char s[] = "cake";
gets_s(str1, 20);
p=strstr(str1, sub);
strcat_s(p, 14, s);
strcpy_s(str2, 14, p);
if (strcmp(str1, str2) == 1) {
printf("%s \n", str1);
printf("%d \n", strlen(str1));
}
if(strcmp(str1, str2) == -1) {
printf("%s \n", str2);
printf("%d \n", strlen(str2));
}
return 0;
}
출처: https://blockdmask.tistory.com/391 [개발자 지망생]
출처: https://metalkim.tistory.com/139 [태사장의 하루]
'Mentoring' 카테고리의 다른 글
[멘토링][c언어]백준 1152번 : 단어의 개수 (0) | 2020.05.28 |
---|---|
[멘토링][c언어]백준 2675번 : 문자열 반복 (0) | 2020.05.28 |
[멘토링][리눅스]overthewire : bandit Level 11→Level 12 (0) | 2020.05.21 |
[멘토링][리눅스]overthewire : bandit Level 10→Level 11 (0) | 2020.05.20 |
[멘토링][c언어]백준 2566번 : 최댓값 (0) | 2020.05.18 |