फोरट्रान - स्ट्रिंग्स
फोरट्रान भाषा पात्रों को एकल चरित्र या सन्निहित तार के रूप में मान सकती है।
एक वर्ण स्ट्रिंग लंबाई में केवल एक वर्ण हो सकता है, या यह शून्य लंबाई का भी हो सकता है। फोरट्रान में, चरित्र कांस्टेंट को दोहरे या एकल उद्धरणों की एक जोड़ी के बीच दिया जाता है।
आंतरिक डेटा प्रकार characterअक्षर और तार संग्रहीत करता है। स्ट्रिंग की लंबाई द्वारा निर्दिष्ट किया जा सकता हैlen specifier। यदि कोई लंबाई निर्दिष्ट नहीं है, तो यह है 1. आप एक स्ट्रिंग के भीतर अलग-अलग पात्रों को संदर्भित कर सकते हैं; बाएं सबसे अधिक वर्ण स्थिति 1 पर है।
स्ट्रिंग घोषणा
स्ट्रिंग घोषित करना अन्य चर के समान है -
type-specifier :: variable_name
उदाहरण के लिए,
Character(len = 20) :: firstname, surname
आप एक मान प्रदान कर सकते हैं जैसे,
character (len = 40) :: name
name = “Zara Ali”
निम्न उदाहरण चरित्र डेटा प्रकार की घोषणा और उपयोग दर्शाता है -
program hello
implicit none
character(len = 15) :: surname, firstname
character(len = 6) :: title
character(len = 25)::greetings
title = 'Mr.'
firstname = 'Rowan'
surname = 'Atkinson'
greetings = 'A big hello from Mr. Beans'
print *, 'Here is', title, firstname, surname
print *, greetings
end program hello
जब आप उपरोक्त कार्यक्रम को संकलित और निष्पादित करते हैं तो यह निम्नलिखित परिणाम उत्पन्न करता है -
Here isMr. Rowan Atkinson
A big hello from Mr. Bean
स्ट्रिंग कॉनटेनटेशन
संघ का संचालक //, संघात तार करता है।
निम्न उदाहरण यह प्रदर्शित करता है -
program hello
implicit none
character(len = 15) :: surname, firstname
character(len = 6) :: title
character(len = 40):: name
character(len = 25)::greetings
title = 'Mr.'
firstname = 'Rowan'
surname = 'Atkinson'
name = title//firstname//surname
greetings = 'A big hello from Mr. Beans'
print *, 'Here is', name
print *, greetings
end program hello
जब आप उपरोक्त कार्यक्रम को संकलित और निष्पादित करते हैं तो यह निम्नलिखित परिणाम उत्पन्न करता है -
Here is Mr. Rowan Atkinson
A big hello from Mr. Bean
सबस्ट्रिंग निकालना
फोरट्रान में, आप स्ट्रिंग को अनुक्रमित करके स्ट्रिंग से ब्रैकेट की एक जोड़ी में स्टार्टिंग के अंतिम और अंतिम इंडेक्स को देते हुए स्ट्रिंग से एक सबस्ट्रिंग निकाल सकते हैं। इसे सीमा विनिर्देशक कहा जाता है।
निम्न उदाहरण दिखाता है कि स्ट्रिंग 'हैलो वर्ल्ड' से सब्स्ट्रिंग 'वर्ल्ड' कैसे निकाला जाए -
program subString
character(len = 11)::hello
hello = "Hello World"
print*, hello(7:11)
end program subString
जब आप उपरोक्त कार्यक्रम को संकलित और निष्पादित करते हैं तो यह निम्नलिखित परिणाम उत्पन्न करता है -
World
उदाहरण
निम्न उदाहरण का उपयोग करता है date_and_timeकार्य दिनांक और समय स्ट्रिंग देने के लिए। हम वर्ष, तिथि, माह, घंटा, मिनट और दूसरी जानकारी को अलग से निकालने के लिए सीमा-विस्तारकों का उपयोग करते हैं।
program datetime
implicit none
character(len = 8) :: dateinfo ! ccyymmdd
character(len = 4) :: year, month*2, day*2
character(len = 10) :: timeinfo ! hhmmss.sss
character(len = 2) :: hour, minute, second*6
call date_and_time(dateinfo, timeinfo)
! let’s break dateinfo into year, month and day.
! dateinfo has a form of ccyymmdd, where cc = century, yy = year
! mm = month and dd = day
year = dateinfo(1:4)
month = dateinfo(5:6)
day = dateinfo(7:8)
print*, 'Date String:', dateinfo
print*, 'Year:', year
print *,'Month:', month
print *,'Day:', day
! let’s break timeinfo into hour, minute and second.
! timeinfo has a form of hhmmss.sss, where h = hour, m = minute
! and s = second
hour = timeinfo(1:2)
minute = timeinfo(3:4)
second = timeinfo(5:10)
print*, 'Time String:', timeinfo
print*, 'Hour:', hour
print*, 'Minute:', minute
print*, 'Second:', second
end program datetime
जब आप उपरोक्त कार्यक्रम को संकलित और निष्पादित करते हैं, तो यह विस्तृत तिथि और समय की जानकारी देता है -
Date String: 20140803
Year: 2014
Month: 08
Day: 03
Time String: 075835.466
Hour: 07
Minute: 58
Second: 35.466
स्ट्रिमिंग स्ट्रिंग्स
trim फ़ंक्शन एक स्ट्रिंग लेता है, और सभी अनुगामी रिक्त स्थान को निकालने के बाद इनपुट स्ट्रिंग देता है।
उदाहरण
program trimString
implicit none
character (len = *), parameter :: fname="Susanne", sname="Rizwan"
character (len = 20) :: fullname
fullname = fname//" "//sname !concatenating the strings
print*,fullname,", the beautiful dancer from the east!"
print*,trim(fullname),", the beautiful dancer from the east!"
end program trimString
जब आप उपरोक्त कार्यक्रम को संकलित और निष्पादित करते हैं तो यह निम्नलिखित परिणाम उत्पन्न करता है -
Susanne Rizwan , the beautiful dancer from the east!
Susanne Rizwan, the beautiful dancer from the east!
स्ट्रिंग्स का लेफ्ट और राइट एडजस्टमेंट
कार्यक्रम adjustl एक स्ट्रिंग लेता है और प्रमुख रिक्त स्थान को हटाकर और उन्हें रिक्त स्थान के रूप में जोड़कर वापस करता है।
कार्यक्रम adjustr एक स्ट्रिंग लेता है और अनुगामी रिक्त स्थान को हटाकर और उन्हें प्रमुख रिक्त स्थान के रूप में जोड़कर वापस करता है।
उदाहरण
program hello
implicit none
character(len = 15) :: surname, firstname
character(len = 6) :: title
character(len = 40):: name
character(len = 25):: greetings
title = 'Mr. '
firstname = 'Rowan'
surname = 'Atkinson'
greetings = 'A big hello from Mr. Beans'
name = adjustl(title)//adjustl(firstname)//adjustl(surname)
print *, 'Here is', name
print *, greetings
name = adjustr(title)//adjustr(firstname)//adjustr(surname)
print *, 'Here is', name
print *, greetings
name = trim(title)//trim(firstname)//trim(surname)
print *, 'Here is', name
print *, greetings
end program hello
जब आप उपरोक्त कार्यक्रम को संकलित और निष्पादित करते हैं तो यह निम्नलिखित परिणाम उत्पन्न करता है -
Here is Mr. Rowan Atkinson
A big hello from Mr. Bean
Here is Mr. Rowan Atkinson
A big hello from Mr. Bean
Here is Mr.RowanAtkinson
A big hello from Mr. Bean
एक स्ट्रिंग में एक विकल्प के लिए खोज
इंडेक्स फ़ंक्शन दो स्ट्रिंग्स लेता है और जांचता है कि क्या दूसरा स्ट्रिंग पहले स्ट्रिंग का एक विकल्प है। यदि दूसरा तर्क पहले तर्क का एक विकल्प है, तो यह एक पूर्णांक लौटाता है जो पहले स्ट्रिंग में दूसरे स्ट्रिंग का प्रारंभिक सूचकांक है, अन्यथा यह शून्य देता है।
उदाहरण
program hello
implicit none
character(len=30) :: myString
character(len=10) :: testString
myString = 'This is a test'
testString = 'test'
if(index(myString, testString) == 0)then
print *, 'test is not found'
else
print *, 'test is found at index: ', index(myString, testString)
end if
end program hello
जब आप उपरोक्त कार्यक्रम को संकलित और निष्पादित करते हैं तो यह निम्नलिखित परिणाम उत्पन्न करता है -
test is found at index: 11