C हेडर नामों को C ++ हेडर नामों में बदलें


27

C मानक लाइब्रेरी में, शीर्षकों के नाम एक .hप्रत्यय के साथ समाप्त होते हैं :

stdio.h

C ++ में, वे शीर्ष लेख नाम वैकल्पिक रूप में उपलब्ध हैं, जिनकी cजगह उपसर्ग है:

cstdio

एक फ़ंक्शन लिखें जो पहले फॉर्म को दूसरे में परिवर्तित करता है। आप रूपांतरण को इन-प्लेस कर सकते हैं, या मूल स्ट्रिंग को बरकरार रख सकते हैं और एक नया स्ट्रिंग वापस कर सकते हैं। अपनी पसंद की भाषा में जो भी स्वाभाविक लगता है।

कोड को त्रुटियों के बिना संकलित / व्याख्या किया जाना चाहिए। संकलक चेतावनी स्वीकार्य हैं।

यहाँ आपका आधारभूत समाधान C है। इसमें 70 अक्षर हैं और इसके बारे में चेतावनी देता है strlen:

void f(char*h){int i=strlen(h);h[--i]=0;while(--i)h[i]=h[i-1];*h='c';}

सबसे छोटा समाधान (पात्रों की संख्या में मापा जाता है) जीतता है।

अपडेट: यदि आपकी पसंद की भाषा फ़ंक्शन का समर्थन नहीं करती है, तो पूरे कार्यक्रम भी स्वीकार्य हैं।

अपडेट: जैसा कि FUZxxl द्वारा सुझाया गया है, यहाँ C मानक लाइब्रेरी में हेडर फ़ाइलों की पूरी सूची है:

assert.h
ctype.h
errno.h
float.h
limits.h
locale.h
math.h
setjmp.h
signal.h
stdarg.h
stddef.h
stdio.h
stdlib.h
string.h
time.h

विशेष रूप से, उनमें कई डॉट्स के साथ कोई हेडर नाम नहीं हैं।

जवाबों:


37

80386 मशीन कोड, 13 बाइट्स

कोड के Hexdump:

b0 63 86 01 41 3c 2e 75 f9 c6 01 00 c3

स्रोत कोड (विजुअल स्टूडियो द्वारा संकलित किया जा सकता है):

__declspec(naked) void __fastcall conv(char s[])
{
    _asm {
        mov al, 'c';            // b0 63
    myloop:
        xchg al, [ecx];         // 86 01
        inc ecx;                // 41
        cmp al, '.';            // 3c 2e
        jne myloop;             // 75 f9
        mov byte ptr [ecx], 0;  // c6 01 00
        ret;                    // c3
    }
}

यह स्ट्रिंग को जगह में परिवर्तित करता है। कोड इतना सरल है, इसे रजिस्टरों को बचाने और पुनर्स्थापित करने की आवश्यकता नहीं है (केवल alऔर ecx, जो कि fastcallसम्मेलन क्लोब करने की अनुमति देता है)।


अच्छा, यह मुझे वापस ले जाता है :)
fredoverflow

निश्चित रूप से कूलर समाधान में से एक! लेकिन स्रोत कोड वास्तव में 13 बाइट्स नहीं है, केवल इसका संकलित रूप है (मुझे लगता है कि हम में से कुछ एक हेक्स संपादक में लिखना चाहते हैं)।
प्रति लुंडबर्ग

3
उसे अपनी जीत दिलाएं। बाइट = चरित्र यहाँ एक पूरी तरह से उचित व्याख्या है।
जोशुआ

7
@PerLundberg मैं इस मामले में स्रोत कोड को "कैसे काम करता है" के रूप में विस्तारित / टिप्पणी की व्याख्या के रूप में देखता हूं कि बहुत सारे लोग अपनी अल्ट्रा-कॉम्पैक्ट भाषाओं में शामिल हैं। इतने छोटे कार्यक्रम के लिए यह बहुत अच्छी तरह से हाथ से लिखा जा सकता था। :)
शराबी

@ फुलफिल फेयर पॉइंट। और हाँ, उन लोगों की संख्या जो दिल से द्विआधारी कोड लिख सकते हैं, निश्चित रूप से 0 है, भले ही मैं किसी को भी नहीं जानता कि खुद geeky। ;)
प्रति लुंडबर्ग


14

सीजाम, 6 बाइट्स

'clW(<

यह एक पूर्ण कार्यक्रम है जो स्ट्रिंग को STDIN के माध्यम से पढ़ता है

स्पष्टीकरण :

'c               "Put character c on stack";
  l              "Read a line from STDIN";
   W             "W is a predefined variable with value -1";
    (            "Decrease the value by 1";
     <           "Remove last 2 characters from the string on stack, the input argument";

इसे यहाँ ऑनलाइन आज़माएँ


-2बस के रूप में अच्छा नहीं है W(?
फलों को तोड़ना


11

ब्रेनफक - 25 23 बाइट्स

,[>,]<-----.<,<[<]>[.>]

यदि आपकी पसंद की भाषा फ़ंक्शन का समर्थन नहीं करती है, तो पूरे कार्यक्रम भी स्वीकार्य हैं।

यह एक पूरा कार्यक्रम है जो STDIN से इनपुट लेता है।

,[>,]      get all bytes of input
<-----.    subtract 5 from last byte (always "h"; "h" minus 5 = "c") and print result
<,         set second last byte to 0 by abusing comma
<[<]>      go to first byte
[.>]       print byte and move right until hitting 0

टेप के बाएँ किनारे पर यह कदम नहीं होगा [<]
फ़ेरसम

@ फैर्सम यदि आपका दुभाषिया आपको बाएं किनारे से हटने की अनुमति देता है, तो हाँ। हर एक मैंने कभी टेप का उपयोग किया है।
अंडरग्राउंडोरेल

2
@ Faersum यदि आप इसे आज़माना चाहते हैं, लेकिन आपका दुभाषिया आपको बंद करने की अनुमति देता है, तो आप इसे >शुरुआत में ही ठीक कर सकते हैं ।
अंडरग्राउंडमोरेल

10

हास्केल - 23 वर्ण

('c':).takeWhile(/='.')

हास्केल - 16 वर्ण, जैसा कि निम्मी द्वारा सुझाया गया है

('c':).init.init

2
init.initसभी को पहले तक ले जाने के बजाय अंतिम 2 वर्णों को छोड़ने से .कुछ बाइट्स बचते हैं।
nimi

@nimi यह एक बहुत बढ़िया सुझाव है!
fredoverflow

10

सी, 38

Ideone पर देखें

f(s,o){snprintf(o,strlen(s),"c%s",s);}

sइनपुट स्ट्रिंग के लिए एक संकेतक है, और oवह जगह है जहां आउटपुट को लिखा जाना चाहिए।

मुझे गाली देने का एक तरीका मिल गया snprintf। आउटपुट स्ट्रिंग आसानी से इनपुट की तुलना में एक वर्ण छोटा होता है, और इसके द्वारा लिखी गई स्ट्रिंग की अधिकतम लंबाई तर्क snprintfसे 1 कम है n, इसलिए यह कट ऑफ करता है .h। नोट: यह तकनीक Microsoft के कार्यान्वयन के साथ काम नहीं करेगी क्योंकि यह गलत काम करता है और स्ट्रिंग को अशक्त करने में विफल रहता है।


8

विंडोज बैच फ़ाइल 11

@echo c%~n1

पहला पैरामीटर पास किया गया% 1 है। ~ N संशोधक विस्तार के बिना सिर्फ फ़ाइल नाम देता है।

यदि यह विस्तारित कमांड को स्क्रीन पर भी प्रतिध्वनित करने के लिए स्वीकार्य है, तो प्रारंभिक @ हटाया जा सकता है।


8

TIS नोड प्रकार T21 आर्किटेक्चर - 85 बाइट्स

यह जवाब सिर्फ मनोरंजन के लिए है; इस चुनौती के लिखे जाने के बाद भाषा अस्तित्व में आई और इसलिए मैं इससे नहीं जीत सकता। (ऐसा नहीं कि मैं जा रहा था।)

ठीक है, मुझे इसके साथ थोड़ा मज़ा आया। मैं शायद चाहिए बस भाषा "TIS-100", लेकिन क्यों तोड़ चरित्र कहते हैं? : डी

TIS-100 पूरी तरह से अद्वितीय और विचित्र वास्तुकला के साथ एक कंप्यूटर प्रोग्रामिंग के बारे में एक खेल है। मैंने इस चुनौती के लिए एक कस्टम पहेली लिखी , जो मुझे एक ज्ञात-सही "स्ट्रिंग" के खिलाफ इनपुट और आउटपुट की जांच करने की अनुमति देती है। दुर्भाग्य से, स्ट्रिंग्स या पात्रों को संभालने का कोई तरीका नहीं है, इसलिए यह प्रोग्राम इनपुट और आउटपुट के लिए प्रत्येक वर्ण के ASCII मूल्य का उपयोग करता है।

यदि आप इसे कार्रवाई में देखना चाहते हैं, तो आप इस एमुलेटर का उपयोग कर सकते हैं , या बस मुझे इसे वास्तविक गेम में चलाते हुए देख सकते हैं । ध्यान दें कि वीडियो में, पहले नोड की अंतिम पंक्ति है D:MOV UP NIL। वीडियो खत्म करने के बाद, मुझे एहसास हुआ कि मैं नीचे गोल्फ कर सकता हूं D:ADD UP। कार्यात्मक रूप से कोई अंतर नहीं है, क्योंकि एसीसी का मूल्य वैसे भी तुरंत ओवरराइट कर दिया जाता है।

यह वह स्ट्रिंग है जिसे मैंने अपनी बाइट गणना के लिए उपयोग किया है:

MOV 99 ANY
MOV -46 ACC
ADD UP
JEZ D
ADD ACC ANY
JRO -5
D:ADD UP
MOV UP ANY
MOV UP ANY

यह प्रत्येक गैर-खाली नोड का पाठ है, जिसे नईलाइनों द्वारा अलग किया गया है (प्रभावी रूप से पहले इस्तेमाल किए गए प्रत्येक नोड के लिए 1 बाइट जोड़कर, कई फाइलों में कोड के बारे में हमारे नियम को प्रतिबिंबित करता है)।


7

डायलॉग एपीएल (8 अक्षर)

'c',¯2↓⊢

यह समाधान ठीक वैसा ही है जैसा कि मैंने जो J समाधान प्रस्तुत किया था लेकिन एक वर्ण कम होने के कारण एक वर्ण का उपयोग करता है }.


7

जे (9 अक्षर)

'c',_2}.]
  • |yकी परिमाण है y(जिसे पूर्ण मान भी कहा जाता है)
  • x }. y|xसे आइटम गिरता है y; आइटम सामने से गिराए जाते हैं यदि xसकारात्मक है, तो xनकारात्मक होने पर अंत से ।
  • x , yappends xऔर y
  • 'c' , _2 }. yआपको जो परिवर्तन चाहिए; मौन संकेतन में इसे व्यक्त किया जा सकता है 'c' , _2 }. ]

7

शुतुरमुर्ग 0.6.0 , 8 वर्ण

););"c\+

)"सही अचेतन" ऑपरेटर है। जब एक स्ट्रिंग पर लागू किया जाता है, तो यह बदल जाता है, उदाहरण के लिए, `foo`में `fo` `o`;का उपयोग अतिरिक्त वर्ण को बंद करने के लिए किया जाता है, और यह फिर से किया जाता है।

फिर, "cधकेल दिया जाता है। यह बस के लिए एक आशुलिपि है `c`

\+ शीर्ष दो स्टैक तत्वों को स्वैप करता है और उन्हें समेटता है।


क्या यह भाषा आपके द्वारा बनाई गई थी?
इस्माइल मिगुएल

@IsmaelMiguel हाँ। (देखें मुख्य Github रेपो ।)
दरवाज़े

मैं हालांकि। मैंने पहले ही इसकी जाँच कर ली थी, इसलिए इसके बारे में सोच रहा था। कहीं भी उस भाषा का कोई संदर्भ नहीं है। केवल यहां। तो, मैंने मान लिया कि यह आपके द्वारा बनाया गया था। एक 14 साल के लड़के के लिए, आप वास्तव में प्रोग्रामिंग पर बहुत दूर चले गए। +1000 उसके लिए!
इस्माइल मिगुएल

@IsmaelMiguel ओह, माफ करना, आपको बता चुका हूँ चाहिए कि मैं कर रहा हूँ KeyboardFire Github पर। धन्यवाद!
दरवाज़े

आप की जरूरत नहीं है। यह लगभग निहित है। मैं इस्माइल-मिगुएल (बहुत मूल, चेक github.com/ismael-miguel ) हूं । मेरे पास वहां कुछ भी दिलचस्प और उपयोगी नहीं है, लेकिन आप इसकी जांच कर सकते हैं। लेकिन मुझे आपकी भाषा पर दिलचस्पी है। केवल पूरी बात php के लिए UIntArray वर्ग है ( github.com/ismael-miguel/php-uintarray यदि आप रुचि रखते हैं)।
इस्माइल मिगुएल

7

piet ( 9x11 = 99 8X11 = 88)

वी 2

एक और कोशिश (2x37 = 74)

यहाँ छवि विवरण दर्ज करें

इसे बहुत छोटा बनाने के लिए मुश्किल है क्योंकि इसे 99 ('सी') और 46 ('') उत्पन्न करने की आवश्यकता है, और यह पीट में जगह लेता है।


1
Piet को कभी भी वर्णों में नहीं मापा जाता, केवल कोडेल, इसलिए आपको 0 वर्णों का उल्लेख करने की आवश्यकता नहीं है :) यह भी कि बहुत अधिक सफेद है
Sp3000

सेक करने की कोशिश कर रहा है, लेकिन यह थोड़ा मुश्किल है। यदि मुझे अभी तक कोई दूसरी पंक्ति या कॉलम निकालनी है, तो इसे समाप्त करने में परेशानी हो रही है।
कैप्टनक्रिग

यह थोड़ा धोखा है, लेकिन मुझे यह पसंद है। यह /dev/nullआपके स्रोत-कोड के रूप में उपयोग करने जैसा है।
इस्माइल मिगुएल

2
META ( meta.codegolf.stackexchange.com/questions/4782/… ) के अनुसार , आपके कार्यक्रम को समाप्त करने की आवश्यकता नहीं है। जब तक यह कार्य करता है, आपका कार्यक्रम हमेशा के लिए चल सकता है। प्रश्न का पहला उत्तर पढ़ें।
इस्माइल मिगुएल

6

एफ # - 39 37 31

31 - क्योंकि एफ # चट्टानों में टाइपिनेंस!

fun s->("c"+s).Replace(".h","")

37

fun(s:string)->"c"+s.Replace(".h","")

39

fun(s:string)->"c"+s.Remove(s.Length-2)

Foo.hoo.h नाम के हेडर के लिए काम नहीं करता है।
FUZxxl

3
@FUZxxl C मानक लाइब्रेरी में ऐसे हेडर नहीं हैं।
fredoverflow

@FredOverflow आप उन नामों के सेट को निर्दिष्ट करना चाह सकते हैं जिन पर परिवर्तन को काम करना है। अभी आपके प्रश्न को इस तरह से शब्दबद्ध किया गया है जिससे लोगों को यह अनुमान हो सकता है कि इस तरह के इनपुट को सही तरीके से काम करना चाहिए।
फ़ूजएक्सएक्सएल

@FUZxxl मैंने अपने अनुसार सवाल अपडेट किया है।
fredoverflow



4

GNU sed -r, 14

sed में वास्तव में कार्यों की कोई अवधारणा नहीं है, इसलिए यहां इसके बजाय एक पूर्ण sed कार्यक्रम है:

s/(.*)../c\1/

उत्पादन

$ sed -r 's/(.*)../c\1/' <<< stdio.h
cstdio
$ 

-rएक अतिरिक्त चरित्र के रूप में स्कोर में शामिल किया गया।


यह समाधान अमान्य है: यह संभवतः s/\(.*\)\.h/c\1/इसके बजाय होना चाहिए ।
FUZxxl

@FUZxxl - मुझे लगता है कि -rयह sed को दिया गया है। सामान्य कोड-गोल्फ के अनुसार मुझे एक अतिरिक्त बिंदु के रूप में गिनना होगा।
डिजिटल ट्रामा

@DigitalTraume नोटिस जो कि -rएक मानक विकल्प नहीं है और GNU sed के बाहर उपलब्ध नहीं है। आप इसे प्रतिबिंबित करने के लिए भाषा का नाम GNU sed में बदलना चाह सकते हैं।
फ़ूजएक्सएक्सएल

@FUZxxl हां। किया हुआ।
डिजिटल ट्रामा

2
\.hको छोटा किया जा सकता है..
स्टीवन तसचुक

3

प्रस्तावना , 31 वर्ण

चूंकि पूर्ण कार्यक्रम प्रस्तुतियाँ स्पष्ट रूप से स्वीकार्य हैं, यहां एक प्रोग्राम है जो STDIN से C- शैली के हेडर को पढ़ता है और C ++ - स्टाइल हेडर को STDOUT में प्रिंट करता है:

99+9+(?)###(#
9(1-)       ^)(!)

इसके लिए एक मानक-अनुरूप दुभाषिया की आवश्यकता होती है जो आउटपुट कोड को वर्ण कोड के रूप में प्रिंट करता है। यदि आप पायथन दुभाषिया का उपयोग कर रहे हैं तो आपको सेट करना होगा NUMERIC_OUTPUT = False

यह भी आवश्यक है कि एसटीडीआईएन पर कोई अनुगामी न्यूलाइन न हो।

व्याख्या

प्रस्तावना में सभी पंक्तियों को एक समय में समानांतर, एक कॉलम में निष्पादित किया जाता है। प्रत्येक पंक्ति का अपना स्टैक होता है, जो कि अनंत मात्रा में होता है 0

99+9+
9(1-)

यह सबसे छोटा है जिसे मैं 99शीर्ष स्टैक (वर्ण कोड c) पर प्राप्त करने के लिए आ सकता हूं । पहले मैं 18शीर्ष स्टैक पर जोड़ता हूं और 9नीचे स्टैक पर धक्का देता हूं । नीचे 0एक लूप में गिना जाता है , जबकि शीर्ष स्टैक अधिक 9एस जोड़ता है । यह 99शीर्ष स्टैक पर जोड़ता है , और नीचे स्टैक 0फिर से एस के साथ छोड़ दिया जाता है । ध्यान दें कि सभी +9+लूप का हिस्सा है, इसलिए वास्तव में प्रति पुनरावृत्ति दो अतिरिक्त संचालन हैं, लेकिन यह एक मुद्दा नहीं है, 0एस के नीचे की अनंत आपूर्ति के लिए धन्यवाद ।

अब (?)STDIN को पढ़ता है, एक बार में एक वर्ण और शीर्ष स्टैक पर धकेलता है। लूप इनपुट के अंत में समाप्त हो जाता है, जब ?एक शून्य को धक्का देता है। ###उस शून्य से छुटकारा पाता है, hऔर .। अब अगले लूप शीर्ष स्टैक से संख्याओं को नीचे स्टैक पर कॉपी करते समय पॉप करते हैं। यह अनिवार्य रूप से स्टैक को उलट देता है। ध्यान दें कि उद्घाटन और समापन कोष्ठक अलग-अलग रेखाओं पर हैं - यह कोई समस्या नहीं है, क्योंकि वर्टिकल की स्थिति )Prelude में अप्रासंगिक है, लेकिन यह मुझे पहली पंक्ति में एक बाइट बचाता है।

अंत में, (!)सभी पात्रों को तब तक प्रिंट करता है जब तक कि स्टैक खाली न हो।


3

पायथ, 7 वर्ण

L+\cPPb

स्पष्टीकरण:

L         def y(b):return
 +\c                      "c" +
    PPb                         b[:-1][:-1]

इसे इस्तेमाल करे:

L+\cPPb
y"stdio.h

ऑनलाइन पायथ कंपाइलर / एक्ज़ीक्यूटर पर


यदि पूर्ण कार्यक्रमों की अनुमति थी:

पायथ, 6 अक्षर

+\cPPQ

मैंने कभी पायथ नहीं देखी। क्या आप इतने दयालु होंगे और कोड की व्याख्या करेंगे? :)
19


मेरा मानना ​​है कि आप PPbइसके बजाय का उपयोग कर सकते हैं<b_2
FryAmTheEggman

@FryAmTheEggman धन्यवाद।
isaacg

यह तो तुम 6. करने के लिए प्राप्त कर सकते हैं, लगता है पूरा कार्यक्रमों अनुमति दी जाती है जैसे
FryAmTheEggman

3

सी ++ 14, 41 अक्षर

[](auto&s){s="c"+s.substr(0,s.size()-2);}

इस अन्य उत्तर से प्रेरित । मैंने इसे एक अलग उत्तर दिया क्योंकि यहां मैं एक विशेषता का उपयोग करता हूं जो कि c ++ 14 में नया है, जेनेरिक लैम्ब्डा

इसे यहां कार्रवाई में देखें ।


2

टी-एसक्यूएल - 58 अक्षर

CREATE PROC Q(@ VARCHAR(MAX))AS
SELECT'c'+LEFT(@,LEN(@)-2)

EXEC Q के रूप में चलाएँ (आपका स्ट्रिंग यहाँ)


2

पर्ल - 20 अक्षर

sub{c.pop=~s/..$//r}

ध्यान दें कि कैसे cएक बेयरवर्ड है और इस तरह इसकी कमी है use strict। यह एक अभिव्यक्ति के रूप में इस्तेमाल किया जाना चाहिए, एक बयान नहीं।


2

मारबेलस, २४

@063
-Z//
3W<C+Z
]]!!
@0

STDIN के माध्यम से इनपुट लेता है, STDOUT को आउटपुट देता है।

यह प्रत्येक बाइट की जाँच के साथ काम करता है .( 0x46)। जैसा कि 0x46एक बेस -36 अंक के अंदर फिट नहीं हो सकता, हम Zतुलना करने से पहले 35 ( ) घटाते हैं , और आउटपुट करने से पहले इसे वापस जोड़ते हैं।

प्रत्येक संगमरमर को 3W(तीन-तरफ़ा डुप्लिकेटर द्वारा दोहराया जाता है , लेकिन बोर्ड के किनारे से बाईं ओर छोड़ दिया जाता है)। नीचे की ओर भेजा गया संगमरमर STDIN से अगली बाइट प्राप्त करता है। दाईं ओर के संगमरमर की जाँच की जाती है ., फिर या तो आउटपुट किया जाता है, या भेजा जाता है !!, जो प्रोग्राम को समाप्त कर देता है।

कार्यक्रम गुजरने c( 0x63) के माध्यम से शुरू होता है , जो एसटीडीयूएसटी के लिए आउटपुट होगा।

इसे यहाँ ऑनलाइन आज़माएँ। पुस्तकालयों को सक्षम किया जाना चाहिए, बेलनाकार बोर्ड को अक्षम किया जाना चाहिए।


2

सी, 64

सी संदर्भ की तुलना में मामूली रूप से छोटा:

f(char*h){char*d=strstr(h,".");memmove(h+1,h,d++-h);*d=0;*h=99;}

संभवतः इसके साथ और अधिक गोल्फिंग की जानी है।


C, 48 (libc hack)

f(char*h){strcpy(h+1,h);*strstr(h,".")=0;*h=99;}

strcpyमैनपेज स्पष्ट रूप से कहा "तार ओवरलैप नहीं सकता है"। हालांकि मैंने पाया कि मैं जिस लिबक का उपयोग कर रहा हूं वह सही ढंग से सभी को समान रूप से संभालने के लिए सुरक्षित रूप से कोडित किया गया प्रतीत होता है। यह Ubuntu 14.04 पर GNU C लाइब्रेरी (Ubuntu EGLIBC 2.19-0ubuntu6.4) है।


क्या C89 में किसी फ़ंक्शन के रिटर्न प्रकार को छोड़ देना है?
फ्रेडओवरफ्लो

1
@FredOverflow। हाँ - जीसीसी इस के साथ ठीक संकलन करता है -std=c89codegolf.stackexchange.com/a/2204/11259
डिजिटल ट्रामा

@FredOverflow Yes। वापसी प्रकार में चूक होती है int
फूजएक्सएक्सएल

मैन पेज सिर्फ मानक को दोहराता है - इसे VC ++ (VS2012) के साथ संकलित करने से "stdio.h" के लिए "cstdii" मिलता है। ICC / Sun / clang की जाँच नहीं की, लेकिन आपका 64-वर्ण संस्करण "क्यों?" - यह लगभग (कानूनी रूप से) सी में हो सकता है के बारे में के रूप में कम है
0

2

जावास्क्रिप्ट (ईएस 6) 20

विश्वास नहीं कर सकता कि ES6 अभी भी गायब था

s=>'c'+s.slice(0,-2)


2

एमके, 34 वर्ण

mk (1) मेक के लिए योजना 9 प्रतिस्थापन है। सिर्फ मनोरंजन के लिए, यह mkfile C शीर्षलेख नामों को C ++ शीर्षलेख नामों में परिवर्तित करता है:

c%:Q:
    :

%.h:Q: c%
    echo $prereq

पहले :और बाद में एक ही टैब है echo। इस तरह का उपयोग करें:

% mk stdio.h
cstdio



1

आर, ३३

function(x)sub("(.+)..","c\\1",x)

यह फ़ंक्शन नियमित अभिव्यक्तियों का उपयोग करता है।

उदाहरण का उपयोग:

> (function(x)sub("(.+)..","c\\1",x))("stdio.h")
[1] "cstdio"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.