728x90
반응형
문자열 길이 구하기: strlen()
strlen()함수를 이용하여 문자열 길이를 출력할 때, 오류가 발생했다고 뜨는 경우가 있는데 이는 형변환을 해주면 해결된다.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(){
char str[100];
scanf("%s",str);
printf("문자열의 길이는 %d입니다."(int)strlen(str));
}
문자열 복사하기: strcpy(),strncpy()
strcpy(문자열 B,문자열 A); | 문자열 A에 저장된 문자열을 문자열 B에 복사한다. |
strncpy(문자열 B,문자열 A,n); | 복사할 문자열의 길이를 지정한다. 문자열 A의 처음부터 n개의 문자열을 문자열 B에 복사한다. |
문자열 접합하기: strcat(),strncat()
strcat(문자열 B,문자열 A)); | 문자열 A의 끝부터 문자열 B를 접합한다. |
strncat(문자열 B, 문자열 A), n); | 문자열 A의 끝부터 문자열 B의 시작부터 n번째 문자까지 대입한다. |
문자열 비교하기: strcmp(),strncpm()
- 일반적으로 두 문자열을 비교하는 것 == 위치의 비교
- 아스키코드로 문자열을 비교
strcmp(문자열A,문자열B); | [반환값] >문자열 동일: 0 >문자열 대/소: +/- - 문자열 A가 문자열 B보다 작은 경우 -값 반환 |
strncmp(문자열A,문자열B,n); | 문자의 비교를 처음부터 n개까지 비교(반환값은 위와 같은 로직) |
#include<stdio.h>
#include<string.h>
int main(){
char str1[100],str2[100];
scanf("%s",str1);
scanf("%s",str2);
printf("%d",(int)strcmp(str1,str2));
}
문자열분리: strtok()
- 문자열을 여러개의 토큰으로 분리(토큰: 사용자가 지정한 구분 문자로 분리되는 문자열 부분 요소)
(1) 구분 문자 선언
(2) char token = strtok(문자열,구분문자);
(3) 프로그램 실행 후 다음토큰 전달_ token = strtok(NULL,구분문자);
#include <stdio.h>
#include <string.h>
int main(){
char arr[100] = "Input Your Text";
char spr[] = " ,\n";
char *token = strtok(arr,spr);
while(token != NULL){
printf("Token: %s\n",token);
token = strtok(NULL,spr);
}
printf("Og arr: %s",arr);
}
위의 코드의 구분 문자는 ,과 공백 그리고 엔터(\n)로 정했다.
문자열 변환하기(수로 변환): atoi().atol(),atof()
- int: atoi(문자열)
- long: atol(문자열)
- double: atof(문자열)
문자열 및 문자 입출력
문자열 출력: puts() | - 문자열 출력 성공 시: ‘\n’반환 - 문자열 출력 실패 시: EOF(-1) 반환 |
문자열 입력 함수: gets(),sets_s(),fgest() | gets(입력받을 문자열) gets_s(입력받을 문자열, 크기) gets(str) => fgets(str,sizeof(str),stdin) ; |
728x90
반응형
'Datastructure > [Objection]' 카테고리의 다른 글
유클리드 호제법: 재귀 (0) | 2022.01.14 |
---|---|
시간 측정 함수 (0) | 2022.01.10 |
Shift 함수 / 시간 계산 (0) | 2022.01.10 |
진수 변환 (0) | 2022.01.05 |
난수 생성 라이브러리 (0) | 2022.01.04 |