(난이도 : 上)
(const 를 붙인 이유)
const char *str = "abcdefghi"; 와 char str[] = "abcdefghi"; 의 차이점
const char \*str
char 형을 가리키는 char 형 포인터변수 이므로 char 형 변수의 주소값이 들어가야한다.
"abcdefghi" 라는 문자열이 있는 주소값이 들어간다.
char str[]
"abcdefghi" 라는 문자열을 str 이라는 배열에 집어넣는 평범한 문장이다.
(난이도 : 中上)
if 문에 사용된 str_a와 str_b 비교는 str_a의 주소값과 str_b의 주소값을 비교하기 때문에,
두 주소값은 같을 수 없으므로 성립하지 않습니다.
(난이도 : 中)
#include <stdio.h>
int compare_str(char *str_a, char *str_b);
int main(void)
{
char str_a[100];
char str_b[100];
printf("두 문자열을 비교하는 프로그램입니다 문자열을 두 번 입력해주세요 \n\n");
printf("첫 번째 문자열 : ");
scanf("%s", str_a);
printf("두 번째 문자열 : ");
scanf("%s", str_b);
printf("%d", compare_str(str_a, str_b));
return 0;
}
int compare_str(char* str_a, char* str_b)
{
int i = 0;
while (str_a[i]!= NULL || str_b[i]!= NULL)
{
if (str_a[i] != str_b[i])
return 0;
i++;
}
return 1;
}
int compare(char *str1, char *str2) {
while (*str1) {
if (*str1 != *str2) {
return 0;
}
str1++;
str2++;
}
if (*str2 == '\0') return 1;
return 0;
}
씹어먹는 C 언어 - <15 - 1. 일로와봐, 문자열(string)>
씹어먹는 C 언어 - <15 - 3. 일로와봐, 문자열(string) - 문자열 지지고 볶기 & 리터럴>