Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

포인터를 사용하여 문자열의 개념을 보여주는 C 프로그램

<시간/>

문자 배열을 문자열이라고 합니다.

선언

배열을 선언하는 구문은 다음과 같습니다 -

char stringname [size];

예를 들어 - char string[50]; 길이 50자의 문자열

초기화

  • 단일 문자 상수 사용 -
char string[10] = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’ ,‘\0’}
  • 문자열 상수 사용하기 -
char string[10] = "Hello":;

액세스 − '\0'이 나타날 때까지 문자열에 액세스하는 데 사용되는 제어 문자열 "%s"가 있습니다.

이제 C 프로그래밍 언어의 포인터 배열이 무엇인지 이해합시다.

포인터 배열:(문자열에 대한)

  • 문자열의 기본 추가에 대한 요소가 ptr인 배열입니다.
  • 다음과 같이 선언하고 초기화합니다 -
char *a[ ] = {"one", "two", "three"};

여기서 a[0]은 문자열 "one"의 기본 추가에 대한 포인터입니다.

a[1]은 문자열 "two"의 기본 추가에 대한 포인터입니다.

a[2]는 문자열 "3"의 기본 추가에 대한 포인터입니다.

예시

다음은 문자열의 개념을 보여주는 C 프로그램입니다 -

#include<stdio.h>
#include<string.h>
void main(){
   //Declaring string and pointers//
   char *s="Meghana";
   //Printing required O/p//
   printf("%s\n",s);//Meghana//
   printf("%c\n",s);//If you take %c, we should have * for string. Else you
   will see no output////
   printf("%c\n",*s);//M because it's the character in the base address//
   printf("%c\n",*(s+4));//Fifth letter a because it's the character in the (base address+4)th position//
   printf("%c\n",*s+5);//R because it will consider character in the base address + 5 in alphabetical order//
}

출력

위의 프로그램이 실행되면 다음과 같은 결과가 생성됩니다 -

Meghana
M
a
R

예시 2

다른 예를 고려하십시오.

다음은 사후 증가 및 사전 증가 연산자를 사용하여 문자를 인쇄하는 개념을 보여주는 C 프로그램입니다. -

#include<stdio.h>
#include<string.h>
void main(){
   //Declaring string and pointers//
   char *s="Meghana";
   //Printing required O/p//
   printf("%s\n",s);//Meghana//
   printf("%c\n",++s+3);//s becomes 2nd position - 'e'. O/p is Garbage value//
   printf("%c\n",s+++3);//s becomes 3rd position - 'g'. O/p is Garbage value//
   printf("%c\n",*++s+3);//s=3 becomes incremented by 1 = 'h'.s becomes 4th
   position.h+3 - k is the O/p//
   printf("%c\n",*s+++3);//s=4 - h is the value. h=3 = k will be the O/p. S is incremented by 1 now. s=5th position//
}

출력

위의 프로그램이 실행되면 다음과 같은 결과가 생성됩니다 -

Meghana
d
d
k
k