C:
স্ট্রিং থেকে উদ্ধৃতি মুছে ফেলা
কিভাবে:
C ভাষায় একটি স্ট্রিং থেকে উদ্ধৃতি চিহ্ন অপসারণের জন্য, আমরা স্ট্রিংটি ট্রাভার্স করি, উদ্ধৃতি চিহ্ন নয় এমন অক্ষরগুলি একটি নতুন স্ট্রিংয়ে কপি করি। এই প্রক্রিয়াটি কেবল সীমানা এবং প্রান্তের উদ্ধৃতি চিহ্নগুলি অপসারণ করা বা স্ট্রিংয়ে থাকা সকল উদ্ধৃতি চিহ্ন অপসারণ করার জন্য কাস্টমাইজ করা যেতে পারে। নিচের উদাহরণটি উভয় পদ্ধতি দেখাচ্ছে:
#include <stdio.h>
#include <string.h>
// ফাংশন যা একটি স্ট্রিং থেকে সকল উদ্ধৃতি চিহ্ন অপসারণ করে
void removeAllQuotes(char *source, char *dest) {
while (*source) {
if (*source != '"' && *source != '\'') {
*dest++ = *source;
}
source++;
}
*dest = '\0'; // ডেস্টিনেশন স্ট্রিংয়ে Null-terminate যোগ করুন
}
// ফাংশন যা কেবল স্ট্রিংয়ের প্রান্ত থেকে উদ্ধৃতি চিহ্ন অপসারণ করে
void removeEdgeQuotes(char *source, char *dest) {
size_t len = strlen(source);
if (source[0] == '"' || source[0] == '\'') source++, len--;
if (source[len-1] == '"' || source[len-1] == '\'') len--;
strncpy(dest, source, len);
dest[len] = '\0'; // ডেস্টিনেশন স্ট্রিংয়ে Null-terminate যোগ করুন
}
int main() {
char str1[] = "'Hello, World!'";
char str2[] = "\"Programming in C\"";
char noQuotes1[50];
char noQuotes2[50];
removeAllQuotes(str1, noQuotes1);
printf("All Quotes Removed: %s\n", noQuotes1);
removeEdgeQuotes(str2, noQuotes2);
printf("Edge Quotes Removed: %s\n", noQuotes2);
return 0;
}
উদাহরণীয় আউটপুট:
All Quotes Removed: Hello, World!
Edge Quotes Removed: Programming in C
এই উদাহরণগুলি দেখায় কীভাবে স্ট্রিংয়ে উপস্থিত সকল উদ্ধৃতি চিহ্ন অপসারণ এবং কেবল প্রান্তের উদ্ধৃতি চিহ্নগুলির লক্ষিত অপসারণ হ্যান্ডল করা যায়।
গভীর ডুব:
স্ট্রিং থেকে উদ্ধৃতি চিহ্ন অপসারণের ধারণার C ভাষায় খুব বেশি ঐতিহাসিক গভীরতা নেই, শুধুমাত্র এর প্রারম্ভিক টেক্সট প্রসেসিংয়ের চাহিদার সাথে এর যোগসূত্র ছাড়া। এখানে দেখানো সরল পদ্ধতিটি নমনীয় কিন্তু খুব বড় স্ট্রিং বা উচ্চ-পারফরম্যান্সের প্রয়োজনে কার্যকরী নাও হতে পারে, যেখানে স্থানে মোডিফিকেশন বা আরও উন্নত অ্যালগরিদম পছন্দনীয় হতে পারে।
strpbrk
ব্যবহার করে উদ্ধৃতি চিহ্নগুলি খুঁজে বের করা এবং স্ট্রিংয়ের উদ্ধৃতি চিহ্ন ব্যতীত অংশটি সরানোর মত বিকল্প পদ্ধতিগুলি আরও কার্যকরী হতে পারে কিন্তু C ভাষায় পয়েন্টার এবং মেমরি ম্যানেজমেন্টের গভীর বোঝাপড়া দাবী করে। তদুপরি, রেগুলার এক্সপ্রেশন লাইব্রেরিগুলির প্রাদুর্ভাব স্ট্রিং ম্যানিপুলেশনের জন্য একটি শক্তিশালী টুলসেট সরবরাহ করেছে, যার মধ্যে উদ্ধৃতি চিহ্ন অপসারণ অন্তর্ভুক্ত। তবে, এই লাইব্রেরিগুলি, যদিও শক্তিশালী, জটিলতা এবং অতিরিক্ত ব্যয় যোগ করে যা সরল কাজের জন্য না থাকাই ভালো। ফলস্বরূপ, দেখানো সরাসরি পদ্ধতিটি C প্রোগ্রামারদের জন্য একটি মূল্যবান দক্ষতা হিসেবে থাকে, সহজতার সাথে অনেক সাধারণ কেসের জন্য কার্যকরীতা মেশানো হয়।