반응형

strcmp 2

[C언어] 71. 문자열 비교와 strcmp 함수

71. 문자열 비교와 strcmp 함수 C언어에서 기본 형식은 비교 연산으로 값의 크기를 비교할 수 있죠. 그런데 배열은 메모리 주소를 값으로 갖기 때문에 비교 연산을 하면 메모리 주소를 비교해요. 개발자는 문자열의 내용을 비교하길 원하는데 메모리 주소를 비교하기 때문에 원하지 않는 결과가 나오지 않아요. 이는 프로그램 버그를 만드는 것이라 주의하세요. ◈ 비교 연산으로 문자열을 비교했을 때의 버그 #include #include #define MAX_NAME_LEN 50 int main() { char name1[MAX_NAME_LEN+1] = "hello"; char name2[MAX_NAME_LEN+1] = "hello"; if(name1 == name2) { printf("%s와 %s는 같다.\n..

[C언어] 68. 문자열

68. 문자열 프로그램을 작성하다 보면 문자열 데이터를 사용할 때가 많아요. 대부분의 프로그래밍 언어에서는 문자열을 관리하는 별도의 형식을 제공하지만 C언어는 문자열 형식을 제공하지 않아요. 그렇다고 C언어에서 문자열 데이터를 표현할 수 없는 것은 아니예요. C언어에서는 문자열을 char 형을 원소로 하는 배열이나 char 형을 원소로 하는 포인터 형식으로 문자열을 표현할 수 있어요. 그리고 문자열 데이터를 표현할 때 쉽게 표현할 수 있게 쌍 따옴표를 사용하여 문자열을 표현할 수 있어요. #define MAX_NAME_LEN 50 char name[MAX_NAME_LEN + 1] = "hello"; const char *str = "yahoo"; char 형식 원소로 배열을 선언하면 문자열을 구성하는 문..

반응형