Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- BFS
- php
- 종만북
- dfs
- 따라하며 배우는 C언어
- Python
- greedy
- BASIC
- C언어
- programmers
- web
- sorting
- C
- Algospot
- Math
- udemy
- 생활코딩
- BOJ
- 인프런
- Cleancode
- 정수론
- JavaScript
- String
- 백준
- Algorithm
- graph
- server
- 따배씨
- 따라하면서 배우는 C언어
- DP
Archives
- Today
- Total
몽상실현개발주의
[따배씨] 11.6 다양한 문자열 함수들 본문
따배씨 - 따라하며 배우는 C언어
11강 문자열 함수들
11.6 다양한 문자열 함수들
#include <stdio.h>
#include <string.h>
void fit_str(char*, unsigned int);
int main(){
// strlen() : return length of the string
char msg[] = "Just," " do it!";
puts(msg);
printf("Length %lu\n", strlen(msg));
fit_str(msg, 4);
puts(msg);
printf("Length %lu\n", strlen(msg));
}
void fit_str(char* str, unsigned int size){
if (strlen(str) > size){
str[size] = '\0';
}
}
- strlen(), 문자열의 길이 반환
#include <stdio.h>
#include <string.h>
int main(){
// strcat() and strncat() : string concatenation // 연쇄
char str1[100] = "First string";
char str2[] = "Second string";
strcat(str1, ", ");
strcat(str1, str2);
puts(str1);
// First string, Second string
char str3[100] = "First string";
char str4[] = "Second string";
strncat(str3, str4, 2);
// First stringSe
puts(str3);
return 0;
}
- strcat(str1, str2) : str1 + str2, 문자열을 합침
- strncat(str1, str2, n): str2 의 n개의 문자만큼 문자열을 합침
#include <stdio.h>
#include <string.h>
void fit_str(char*, unsigned int);
int main(){
// strcmp() and strncmp() : compare string (not characters)
printf("%d\n", strcmp("A", "A"));
// 0
printf("%d\n", strcmp("A", "B"));
// -1
printf("%d\n", strcmp("B", "A"));
// 1
printf("%d\n", strcmp("Hello", "Hello"));
// 0
printf("%d\n", strcmp("Banana", "Bananas"));
// -1
printf("%d\n", strcmp("Bananas", "Banana"));
// 1
printf("%d\n", strncmp("Bananas", "Banana", 6));
// 0
return 0;
}
- strcmp(str1, str2) : str1 과 str2 를 비교, 문자열 비교
- 같으면 0 반환, 앞의 문자열의 ASCII code 기준 더 빠르면 1, 느리면 -1
- 문자열의 문자를 하나씩 비교하여 ASCII code 기준 우선순위 판별
#include <stdio.h>
#include <string.h>
int main(){
// strcopy() and strncopy() : 문자열 복사
char dest[100] = "";
char source[] = "Start programming!";
// dest = "Str Something";
// dest = source;
strcpy(dest, source);
puts(dest);
// Start programming!
strncpy(dest, source, 5);
puts(dest);
// Start programming! // '\0' is not added!
char dest2[100] = "";
strcpy(dest2, source + 6);
puts(dest2);
// programming!
strcpy(dest2+6, "coding!");
puts(dest2);
// progracoding!
return 0;
}
- 문자열을 배열로 선언후, 새로운 문자열로 직접 변경시 에러 발생
- "Array type 'char [100]' is not assignable"
- strcpy(str1, str2) : str1 의 메모리 공간에 str2 문자열 데이터 복사
- strncpy(str1, str2, n) : str1 의 메모리 공간에 str2 문자열의 n 의 갯수만큼 잘라서 복사
#include <stdio.h>
#include <string.h>
int main(){
// sprintf() : 출력할 문자열을 변수에 받아 줌
char str[100] = "";
int i = 123;
double d = 3.14;
sprintf(str, "%05d.png %f", i, d);
puts(str);
// 00123.png 3.140000
return 0;
}
- sprintf(str, "%d string", i) : printf() 로 출력하게 될 문자열을 받아와 변수에 저장
이 글의 모든 사진과 내용의 출처는 홍정모 교수님께 있음을 알려드립니다.
http://blog.naver.com/atelierjpro
http://www.inflearn.com/course/following-c
'Language > C' 카테고리의 다른 글
[따배씨] 11.8 문자열의 포인터를 정렬하기 (0) | 2021.06.10 |
---|---|
[따배씨] 11.7 선택 정렬 문제 풀이 (0) | 2021.06.10 |
[따배씨] 11.5 문자열을 출력하는 다양한 방법들 (0) | 2021.06.09 |
[따배씨] 11.4 문자열을 입력받는 다양한 방법들 (0) | 2021.06.09 |
[따배씨] 11.3 문자열의 배열 (0) | 2021.06.09 |
Comments