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

C 프로그래밍 문자열

C 프로그래밍 문자열

이 자습서에서는 C 프로그래밍의 문자열에 대해 배웁니다. 예제를 통해 선언하고 초기화하고 다양한 I/O 작업에 사용하는 방법을 배웁니다.

C 프로그래밍에서 문자열은 null 문자로 끝나는 일련의 문자입니다. \0 . 예:

char c[] = "c string";

컴파일러가 큰따옴표로 묶인 일련의 문자를 발견하면 null 문자 \0를 추가합니다. 기본적으로 끝에 있습니다.

<그림> <시간>

문자열을 선언하는 방법

다음은 문자열을 선언하는 방법입니다.

char s[5];
<그림>

여기에서 5자의 문자열을 선언했습니다.

<시간>

문자열을 초기화하는 방법

다양한 방법으로 문자열을 초기화할 수 있습니다.

char c[] = "abcd";

char c[50] = "abcd";

char c[] = {'a', 'b', 'c', 'd', '\0'};

char c[5] = {'a', 'b', 'c', 'd', '\0'};
<그림>

다른 예를 들어보겠습니다.

char c[5] = "abcde";

여기서는 6개의 문자를 할당하려고 합니다(마지막 문자는 '\0' )를 char로 5개의 문자를 갖는 배열. 이것은 좋지 않으며 절대 해서는 안 됩니다.

<시간>

문자열에 값 할당

배열과 문자열은 C에서 2급 시민입니다. 일단 선언되면 할당 연산자를 지원하지 않습니다. 예를 들어,

char c[100];
c = "C programming";  // Error! array type is not assignable.

참고: 대신 strcpy() 함수를 사용하여 문자열을 복사합니다.

<시간>

사용자로부터 문자열 읽기

scanf()을(를) 사용할 수 있습니다. 문자열을 읽는 함수입니다.

scanf() 함수는 공백(공백, 줄 바꿈, 탭 등)을 만날 때까지 일련의 문자를 읽습니다.

<시간>

예시 1:문자열을 읽는 scanf()

#include <stdio.h>
int main()
{
    char name[20];
    printf("Enter name: ");
    scanf("%s", name);
    printf("Your name is %s.", name);
    return 0;
}

출력

Enter name: Dennis Ritchie
Your name is Dennis.

데니스 리치 위의 프로그램에 "Dennis"만 입력되었습니다. name에 저장되었습니다. 끈. Dennis 뒤에 공백이 있었기 때문입니다. .

또한 name 코드를 사용했습니다. &name 대신 scanf() 사용 .

scanf("%s", name);

name 때문입니다. char입니다. 배열이며 배열 이름이 C의 포인터로 소멸된다는 것을 알고 있습니다.

따라서 이름 scanf()에서 이미 문자열에서 첫 번째 요소의 주소를 가리키므로 &을 사용할 필요가 없습니다. .

<시간>

텍스트 줄을 읽는 방법은 무엇입니까?

fgets()를 사용할 수 있습니다. 문자열의 한 줄을 읽는 함수. 그리고 puts()을 사용할 수 있습니다. 문자열을 표시합니다.

<시간>

예시 2:fgets() 및 puts()

#include <stdio.h>
int main()
{
    char name[30];
    printf("Enter name: ");
    fgets(name, sizeof(name), stdin);  // read string
    printf("Name: ");
    puts(name);    // display string
    return 0;
}

출력

Enter name: Tom Hanks
Name: Tom Hanks

여기에서는 fgets()을 사용했습니다. 사용자로부터 문자열을 읽어오는 함수입니다.

fgets(name, sizeof(name), stdlin); // read string

sizeof(name) 결과는 30입니다. 따라서 최대 30자를 입력으로 사용할 수 있으며 이는 name의 크기입니다. 문자열.

문자열을 인쇄하기 위해 puts(name);을 사용했습니다. .

참고: gets() 함수는 사용자로부터 입력을 받을 수도 있습니다. 그러나 C 표준에서는 제거되었습니다.

gets() 때문입니다. 모든 길이의 문자를 입력할 수 있습니다. 따라서 버퍼 오버플로가 발생할 수 있습니다.

<시간>

함수에 문자열 전달

문자열은 배열과 유사한 방식으로 함수에 전달할 수 있습니다. 함수에 배열을 전달하는 방법에 대해 자세히 알아보세요.

<시간>

예시 3:함수에 문자열 전달

#include <stdio.h>
void displayString(char str[]);

int main()
{
    char str[50];
    printf("Enter string: ");
    fgets(str, sizeof(str), stdin);             
    displayString(str);     // Passing string to a function.    
    return 0;
}
void displayString(char str[])
{
    printf("String Output: ");
    puts(str);
}
<시간>

문자열 및 포인터

배열과 유사하게 문자열 이름은 포인터에 대해 "소멸"됩니다. 따라서 포인터를 사용하여 문자열의 요소를 조작할 수 있습니다. 이 예제를 확인하기 전에 C 배열 및 포인터를 확인하는 것이 좋습니다.

<시간>

예시 4:문자열과 포인터

#include <stdio.h>

int main(void) {
  char name[] = "Harry Potter";

  printf("%c", *name);     // Output: H
  printf("%c", *(name+1));   // Output: a
  printf("%c", *(name+7));   // Output: o

  char *namePtr;

  namePtr = name;
  printf("%c", *namePtr);     // Output: H
  printf("%c", *(namePtr+1));   // Output: a
  printf("%c", *(namePtr+7));   // Output: o
}
<시간>

일반적으로 사용되는 문자열 함수


C 언어

  1. C# 문자열
  2. C# 프로그래밍의 네임스페이스
  3. C++ 프로그래밍에서 함수에 배열 전달
  4. 자바 문자열
  5. 자바 열거형 문자열
  6. C++ 문자열:strcpy(), strcat(), strlen(), strcmp() 예
  7. C의 문자열:변수 선언 방법, 초기화, 인쇄, 예제
  8. Python 문자열:바꾸기, 결합, 분할, 반전, 대문자 및 소문자
  9. C 튜토리얼
  10. 자바 - 문자열 클래스