String Operators এবং Concatenation

Operators এবং Expressions (অপারেটর এবং এক্সপ্রেশন) - টিসিএল/টিকে (Tcl/Tk) - Computer Programming

321

টিসিএল (Tcl) - String Operators এবং Concatenation

টিসিএল (Tcl) এ স্ট্রিং একটি গুরুত্বপূর্ণ ডেটা টাইপ, যা বিভিন্ন ধরনের অপারেশন এবং ম্যানিপুলেশন করা যায়। স্ট্রিং অপারেটর এবং কনক্যাটেনেশন (Concatenation) হল টিসিএল প্রোগ্রামিংয়ে স্ট্রিংগুলি একত্রিত করার এবং তার উপর বিভিন্ন ধরনের কার্যকরী অপারেশন চালানোর প্রধান উপায়।

এখানে স্ট্রিং অপারেটর এবং স্ট্রিং কনক্যাটেনেশন এর বিস্তারিত আলোচনা করা হলো।

১. স্ট্রিং অপারেটর (String Operators)

টিসিএল-এ স্ট্রিং অপারেটর ব্যবহার করে স্ট্রিংয়ের উপর বিভিন্ন ধরনের কার্যকরী অপারেশন করা যায়, যেমন স্ট্রিং তুলনা, স্ট্রিং দৈর্ঘ্য নির্ধারণ, সাবস্ট্রিং (substring) বের করা ইত্যাদি।

১.১. স্ট্রিং তুলনা (String Comparison)

স্ট্রিং তুলনা করতে string compare অথবা সরাসরি == এবং != অপারেটর ব্যবহার করা যেতে পারে। স্ট্রিং সমান বা ভিন্ন কিনা তা যাচাই করা হয়।

উদাহরণ (string compare):

set str1 "Hello"
set str2 "World"
set result [string compare $str1 $str2]
puts $result   ;# আউটপুট: -1 (যেহেতু তারা সমান নয়)

এখানে, string compare কমান্ডটি দুটি স্ট্রিং তুলনা করে, এবং ফলস্বরূপ -1 ফেরত দেয় যদি স্ট্রিংগুলি ভিন্ন হয়।

উদাহরণ (==, !=):

set str1 "Hello"
set str2 "Hello"
if { $str1 == $str2 } {
    puts "Strings are equal"
}

এখানে, == অপারেটর দ্বারা স্ট্রিংগুলোর সমতা পরীক্ষা করা হচ্ছে।

১.২. স্ট্রিং দৈর্ঘ্য (String Length)

স্ট্রিংয়ের দৈর্ঘ্য নির্ধারণ করতে string length কমান্ড ব্যবহার করা হয়।

উদাহরণ:

set str "Hello"
set length [string length $str]
puts $length   ;# আউটপুট: 5

এখানে, "Hello" স্ট্রিংয়ের দৈর্ঘ্য ৫, যা string length কমান্ড দ্বারা বের করা হয়েছে।

১.৩. স্ট্রিং সাবস্ট্রিং (Substring)

স্ট্রিং থেকে সাবস্ট্রিং বের করতে string range অপারেটর ব্যবহার করা হয়।

উদাহরণ:

set str "Hello, World!"
set subStr [string range $str 0 4]
puts $subStr   ;# আউটপুট: Hello

এখানে, string range কমান্ডের মাধ্যমে প্রথম পাঁচটি অক্ষর ("Hello") সাবস্ট্রিং হিসেবে বের করা হয়েছে।

১.৪. স্ট্রিং রিপ্লেসমেন্ট (String Replacement)

স্ট্রিংয়ের একটি অংশ পরিবর্তন করতে string map অথবা string replace ব্যবহার করা হয়।

উদাহরণ (string map):

set str "Hello, World!"
set newStr [string map {"Hello" "Hi"} $str]
puts $newStr   ;# আউটপুট: Hi, World!

এখানে, "Hello" স্ট্রিংটি "Hi" দিয়ে প্রতিস্থাপন করা হয়েছে।

উদাহরণ (string replace):

set str "Hello, World!"
set newStr [string replace $str 7 11 "Tcl"]
puts $newStr   ;# আউটপুট: Hello, Tcl

এখানে, "World" অংশটি "Tcl" দিয়ে প্রতিস্থাপন করা হয়েছে।


২. স্ট্রিং কনক্যাটেনেশন (String Concatenation)

টিসিএল-এ স্ট্রিং কনক্যাটেনেশন অর্থাৎ দুটি বা একাধিক স্ট্রিং একত্রিত করা খুবই সহজ। স্ট্রিং কনক্যাটেনেশনের জন্য সরাসরি স্পেস ব্যবহার করা হয়। কোন সিম্বল বা অপারেটর প্রয়োজন হয় না।

২.১. স্ট্রিং কনক্যাটেনেশন উদাহরণ

set firstName "Azizur"
set lastName "Rahman"
set fullName "$firstName $lastName"
puts $fullName   ;# আউটপুট: Azizur Rahman

এখানে, $firstName এবং $lastName দুটি স্ট্রিংকে একটি স্পেস দিয়ে যোগ করে fullName তৈরি করা হয়েছে।

২.২. স্ট্রিং কনক্যাটেনেশনে একাধিক স্ট্রিং যুক্ত করা

একাধিক স্ট্রিংকে একত্রিত করতে সরাসরি স্পেস ব্যবহার করা হয়।

উদাহরণ:

set str1 "Hello"
set str2 " "
set str3 "World"
set result "$str1$str2$str3"
puts $result   ;# আউটপুট: Hello World

এখানে, "Hello", " " এবং "World" স্ট্রিংগুলোকে একত্রিত করে "Hello World" তৈরি করা হয়েছে।

২.৩. স্ট্রিং কনক্যাটেনেশন সহ ফাংশন ব্যবহার

ফাংশনের মধ্যে স্ট্রিং কনক্যাটেনেশন করা যেতে পারে।

উদাহরণ:

proc greet {firstName lastName} {
    set fullName "$firstName $lastName"
    puts "Hello, $fullName!"
}

greet "Azizur" "Rahman"   ;# আউটপুট: Hello, Azizur Rahman!

এখানে, greet ফাংশনের মধ্যে দুটি স্ট্রিং (প্রথম এবং শেষ নাম) কনক্যাটেনেট করে একটি পূর্ণ নাম তৈরি করা হয়েছে এবং তা আউটপুট করা হয়েছে।


উপসংহার

টিসিএল-এ স্ট্রিং অপারেটর এবং স্ট্রিং কনক্যাটেনেশন খুবই শক্তিশালী এবং সহজ। আপনি স্ট্রিং তুলনা, স্ট্রিং দৈর্ঘ্য নির্ধারণ, সাবস্ট্রিং বের করা, এবং স্ট্রিং রিপ্লেসমেন্ট করতে পারেন। স্ট্রিং কনক্যাটেনেশন খুবই সরল – শুধু স্পেস দিয়ে একাধিক স্ট্রিংকে যোগ করা হয়। টিসিএল-এর এই স্ট্রিং অপারেশনগুলো খুবই কার্যকরী এবং সহজে স্ট্রিং ম্যানিপুলেশন সম্পাদন করতে সহায়তা করে।

Content added By
Promotion

Are you sure to start over?

Loading...