문자열의 문자 갯수 세어주는 함수 C언어는 0은 거짓, 0이외 숫자는 참
코드
#include <stdio.h>
int strlen2(char* pstr) {
int i = 0;
while (pstr[i]) {
i++;
}
return i;
}
int main() {
char str[30] = "Monster";
int count = strlen2(str);
printf("str: %s, 문자열의 문자의 갯수는: %d\n", str, count);
return 0;
}
결과
str: Monster, 문자열의 문자의 갯수는: 7
pdest: 문자열 복사 공간
psrc: 문자열의 소스
리턴값: 복사된 문자열의 선두번지 주소값
코드
#include <stdio.h>
char* strcpy2(char* pdest, char* psrc) {
int i = 0;
while (psrc[i]) {
pdest[i] = psrc[i];
i++;
}
pdest[i] = psrc[i];
return pdest;
}
int main() {
char str[30] = "Monster";
char buff[30];
char* pstr = strcpy2(buff, str);
printf("buff: %s\n", buff);
return 0;
}
결과
buff: Monster
문자열 비교해주는 함수 문자열이 같으면 0을 리턴, 다르면 1을 리턴
코드
#include <stdio.h>
int strcmp2(char* pstr1, char* pstr2) {
int len = 0;
int len1 = 0;
int len2 = 0;
while (pstr1[len1]) {
len1++;
}
while (pstr2[len2]) {
len2++;
}
if (len1 > len2) {
len = len1;
}
else {
len = len2;
}
for (int i = 0; i < len; i++) {
if (pstr1[i] != pstr2[i]) {
return 1;
}
}
return 0;
}
int main() {
char str[30] = "Monster";
char buff[30] = "Monster";
int isSame = 0;
isSame = strcmp2(str, buff); //같으면 0을 리턴, 다르면 1을 리턴
if (isSame) {
printf("str: %s와 buff: %s의 문자열이 다르다.\n", str, buff);
}
else {
printf("str: %s와 buff: %s의 문자열이 같다.\n", str, buff);
}
return 0;
}
결과
str: Monster와 buff: Monster의 문자열이 같다.
문자열 str1과 문자열 str2를 병합하는 함수
pstr1: 문자열을 병합할 공간
pstr2: 병합할 문자열
리턴값: 병합된 문자열의 선두번지 주소값
코드
#include <stdio.h>
char* strcat2(char* pstr1, char* pstr2) {
int len1 = 0;
int len2 = 0;
while (pstr1[len1]) {
len1++;
}
while (pstr2[len2]) {
len2++;
}
for (int i = len1; i <= len1 + len2; i++) {
pstr1[i] = pstr2[i - len1];
}
return pstr1;
}
int main() {
char str1[30] = "mon";
char str2[] = "ster";
pstr = strcat2(str1, str2);
printf("str1: %s, str2: %s, pstr: %s\n", str1, str2, pstr);
return 0;
}
결과
str1: monster, str2: ster, pstr: monster
A(65) ~ Z(90)
a(97) ~ z(122)
코드
#include <stdio.h>
int toUpper(char ch) {// 대문자 변경
char n = 'a' - 'A';
ch = ch - n;
return ch;
}
int toLower(char ch) {// 소문자 변경
char n = 'A' - 'a';
ch = ch - n;
return ch;
}
int main() {
int ch = toUpper('k');
printf("ch = %c\n", (char)ch);
ch = toLower('L');
printf("ch = %c\n", (char)ch);
return 0;
}
결과
ch = K
ch = l