산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> C 언어

C 문자열 완전 정복: 선언, 입출력, 라이브러리 함수

C에서 문자열(String)이란?

C에서 문자열은 널 문자(\0)로 끝나는 연속된 문자 시퀀스입니다. 언어에 전용 문자열 타입은 없지만, 보통 char 값의 배열로 표현됩니다. 문자열 리터럴로 초기화할 때 컴파일러가 자동으로 널 종결자를 추가합니다.

"Welcome to the world of programming!"

표준 라이브러리 헤더 <string.h>는 문자열을 효율적으로 조작하는 풍부한 함수를 제공합니다.

문자열 선언과 초기화

C는 문자열을 문자 배열로 다루므로 배열 크기를 지정해야 합니다. 크기는 저장 가능한 최대 문자 수(널 종결자 제외)를 정의합니다.

char 문자열_변수명[배열_크기];

일반적 선언:

char first_name[15]; /* 최대 14자 + \0 저장 가능 */
char last_name[15];

초기화자를 제공하면 컴파일러가 문자 수를 세고 자동으로 널 종결자를 추가합니다. 초기화자를 주면 배열 크기 생략 가능.

char first_name[15] = "ANTHONY";
char first_name[] = "NATHAN"; /* 크기 추론 */
char string3[6] = {'h','e','l','l','o','\0'}; /* 명시적 종결자 */

사용자 입력으로 문자열 읽기

입력 함수는 안전성과 동작이 다릅니다:

fgets 사용 예:

#include <stdio.h>
int main() {
    char name[50];
    printf("Enter your full name: ");
    fgets(name, sizeof(name), stdin);
    printf("Your name is %s", name);
    return 0;
}

문자열 출력

문자열 표시의 고전적 방법은 printf("%s", name);입니다. 편리한 대안 두 가지:

puts 예제:

#include <stdio.h>
int main() {
    char greeting[] = "Hello, world!";
    puts(greeting);
    return 0;
}

문자열 라이브러리(<string.h>)

자주 쓰이는 함수:

함수설명
strlen문자열 길이 반환 (널 종결자 제외)
strcat한 문자열을 다른 문자열에 덧붙임
strcmp두 문자열을 사전순 비교
strcpy문자열 복사
strncmp최대 n자 비교
strncpy최대 n자 복사
strchr문자의 첫 출현 위치 찾기
strrchr문자의 마지막 출현 위치 찾기
strstr부분 문자열 찾기
strncat최대 n자 연결
strlwr소문자 변환 (비표준)
strupr대문자 변환 (비표준)
strrev문자열 뒤집기 (비표준)

예시 프로그램:

#include <stdio.h>
#include <string.h>
int main() {
    char str1[20] = "Hello";
    char str2[20] = " World!";
    char result[40];
    /* 비교 */
    if (strcmp(str1, str2) == 0)
        puts("Strings are equal");
    else
        puts("Strings are not equal");
    /* 연결 */
    strcat(str1, str2); // str1은 이제 "Hello World!"
    printf("Concatenated: %s\n", str1);
    /* 길이 */
    printf("Length of str1: %zu\n", strlen(str1));
    /* 복사 */
    strcpy(result, str1);
    printf("Copied string: %s\n", result);
    return 0;
}

문자열을 숫자로 변환

표준 변환 함수:

atoi 예제:

#include <stdio.h>
#include <stdlib.h>
int main() {
    char number_str[20];
    printf("Enter a number: ");
    fgets(number_str, sizeof(number_str), stdin);
    int num = atoi(number_str);
    printf("You entered %d\n", num);
    return 0;
}

핵심 요약

C 언어

  1. Java String 마스터하기: 생성, 메서드, 모범 사례
  2. Java Enum 문자열 표현 마스터: 기본값, 오버라이딩, 고급 패턴
  3. VHDL 문자열 리스트 구현: 모범 사례와 예제
  4. C++ 배열 완전 정복: 선언, 초기화, 포인터 기법
  5. C++ 문자열 함수 마스터: strcpy, strcat, strlen, strcmp 실전 예제
  6. C언어 realloc() 활용법: 문법, 모범 사례, 실전 예제
  7. C언어 free() 함수 마스터하기: 실전 가이드와 예제
  8. Java String length() 메서드: 문자열 크기 구하기 (예제 포함)
  9. Python 문자열 연산 마스터하기: replace, join, split, reverse, 대소문자 변환
  10. Java Strings 클래스: 문자열 생성 및 조작 마스터하기