Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C प्रोग्राम: स्ट्रिंग्स के पॉइंटर्स की सरणी और उनके पते प्रिंट करें

C प्रोग्रामिंग में पॉइंटर्स की सरणी (array of pointers) को समझते हैं, विशेष रूप से स्ट्रिंग्स के लिए।

पॉइंटर्स की सरणी (स्ट्रिंग्स के लिए)

  • यह एक सरणी है जिसके तत्व स्ट्रिंग के बेस पते को इंगित करने वाले पॉइंटर्स होते हैं।
  • घोषणा और आरंभीकरण:
char *a[] = {"one", "two", "three"};

यहाँ:

  • a[0] "one" स्ट्रिंग के बेस पते का पॉइंटर है।
  • a[1] "two" स्ट्रिंग के बेस पते का पॉइंटर है।
  • a[2] "three" स्ट्रिंग के बेस पते का पॉइंटर है।

लाभ

  • टू-डायमेंशनल कैरेक्टर सरणी के विपरीत, पॉइंटर्स की सरणी में स्टोरेज के लिए निश्चित मेमोरी आकार नहीं होता।
  • स्ट्रिंग्स केवल उतने बाइट्स घेरते हैं जितने आवश्यक हैं, इसलिए स्पेस की बर्बादी नहीं होती।

उदाहरण 1: स्ट्रिंग्स और उनके पते प्रिंट करना

#include <stdio.h> 
#include <string.h> 

void main(){
    int i;
    char *a[5] = {"One", "Two", "Three", "Four", "Five"};
    
    // प्रत्येक स्ट्रिंग लोकेशन में मान प्रिंट करना
    printf("The values in every string location are:\n");
    for(i=0; i<5; i++){
        printf("%s\n", a[i]);
    }
    
    // प्रत्येक स्ट्रिंग लोकेशन के पते प्रिंट करना
    printf("The address locations of every string values are:\n");
    for(i=0; i<5; i++){
        printf("%p\n", (void*)a[i]);  // %p फॉर्मेट स्पेसिफायर का उपयोग करें
    }
}

आउटपुट

The values in every string location are:
One
Two
Three
Four
Five
The address locations of every string values are:
0x7ffee4b8c9a0
0x7ffee4b8c9a4
0x7ffee4b8c9a8
0x7ffee4b8c9ac
0x7ffee4b8c9b0

उदाहरण 2: पॉइंटर का उपयोग करके स्ट्रिंग प्रिंट करना

#include <stdio.h> 
#include <string.h> 

void main(){
    char string[20] = "TutorialPoint";
    char *pointer = string;
    
    // पॉइंटर का उपयोग करके स्ट्रिंग प्रिंट करना
    printf("The string is: ");
    while(*pointer != '\0'){
        printf("%c", *pointer);  // %s के बजाय %c का उपयोग करें
        pointer++;
    }
}

आउटपुट

The string is: TutorialPoint

महत्वपूर्ण सुधार

मूल कोड में printf("%s", *pointer) था जो गलत है। सही है printf("%c", *pointer) या सीधे puts(string)।

मुख्य बिंदु

  • पॉइंटर्स की सरणी स्ट्रिंग्स को कुशलतापूर्वक संग्रहीत करती है।
  • प्रत्येक पॉइंटर स्ट्रिंग के पहले कैरेक्टर का पता रखता है।
  • %p फॉर्मेट स्पेसिफायर का उपयोग पतों को प्रिंट करने के लिए करें।
  1. C में सरणी के निचले और ऊपरी त्रिकोणीय मैट्रिक्स प्रिंट करने का प्रोग्राम C में सरणी के निचले और ऊपरी त्रिकोणीय मैट्रिक्स प्रिंट करने का प्रोग्राम

    प्रोग्राम विवरण एक सरणी के निचले त्रिकोणीय मैट्रिक्स और ऊपरी त्रिकोणीय मैट्रिक्स को प्रिंट करने का प्रोग्राम लिखें। त्रिकोणीय मैट्रिक्स (Triangular Matrix) एक त्रिकोणीय मैट्रिक्स वह है जो या तो निचला त्रिकोणीय या ऊपरी त्रिकोणीय होता है। निचला त्रिकोणीय मैट्रिक्स (Lower Triangular Matrix) एक वर्ग

  1. C प्रोग्राम में O(n) समय और O(1) स्पेस में ऐरे का बायां रोटेशन प्रिंट करें C प्रोग्राम में O(n) समय और O(1) स्पेस में ऐरे का बायां रोटेशन प्रिंट करें

    समस्या विवरण हमें कुछ आकार n का एक ऐरे और कई पूर्णांक मान दिए गए हैं, हमें दिए गए इंडेक्स k से ऐरे को रोटेट करना होगा। उदाहरण इनपुट: arr[] = {1, 2, 3, 4, 5} K1 = 1, K2 = 3, K3 = 6 आउटपुट: 2 3 4 5 1 4 5 1 2 3 2 3 4 5 1 एल्गोरिदम शुरुआत चरण 1: void leftRotate(int arr[], int n, int k) फंक्शन घोषित क

  1. C प्रोग्राम में 2-D मैट्रिक्स के कोने के तत्व और उनका योग प्रिंट करें C प्रोग्राम में 2-D मैट्रिक्स के कोने के तत्व और उनका योग प्रिंट करें

    समस्या विवरण आकार 2x2 का एक ऐरे दिया गया है और चुनौती ऐरे में संग्रहीत सभी कोने के तत्वों का योग प्रिंट करना है। उदाहरण इनपुट: मैट्रिक्स तत्व दर्ज करें: 10 2 10 2 3 4 10 4 10 आउटपुट: मैट्रिक्स का योग है: 40 एल्गोरिदम शुरुआत चरण 1: पंक्तियों और कॉलम के लिए मैक्रो बनाएं #define row 3 और #define col