প্রোগ্রামিং এ মূলত অনেকগুলো এর সমষ্টি কে স্ট্রিং বলে । যেমন ধরোঃ একটি কিন্তু একটি স্ট্রিং । তুমি যদি অন্য কোনো প্রোগ্রামিং ভাষা ব্যবহার করে থাকো, তাহলে হয়তো String কে আলাদা একটি ডাটাটাইপ হিসেবে ব্যবহার করেছো । কিন্তু সি তে স্ট্রিং এর জন্য আলাদা কোনো ডাটাটাইপ নেই । মূলত এর অ্যারে কেই স্ট্রিং হিসেবে ব্যবহার করা হয় সি তে ।
আগেই বলেছি, স্ট্রিং মূলত এর অ্যারে । তাই স্ট্রিং নিম্নোক্ত ভাবে তৈরি করা যায়ঃ
1char name[] = "Abdur Rahman";আর স্ট্রিং কে আমরা ফাংশনে সরাসরি ফরম্যাট স্পেসিফায়ার ব্যবহার করে প্রিন্ট করতে পারিঃ
1printf("%s", name);তাহলে পুরো কোডটি দাঁড়াচ্ছে এরকমঃ
1#include<stdio.h>
2
3int main(){
4 char name[] = "Abdur Rahman";
5 printf("%s", name);
6 return 0;
7}
8তোমরা চাইলে এ স্ট্রিং টিকে একটি ক্যারেক্টার এর অ্যারে হিসেবে চিন্তা করে সেখানে লুপ খাটিয়েও প্রিন্ট করতে পারো ।
1#include<stdio.h>
2
3int main(){
4 char name[] = "Abdur Rahman";
5 int length = 12;
6 for(int i = 0; i < length; i++){
7 printf("%c", name[i]);
8 }
9 return 0;
10}
11তবে, এখানে আমাদের ক্যারেক্টার এর অ্যারেটির দৈর্ঘ্য আলাদা করে বলে দিতে হয়েছে । কিন্তু আমরা যদি স্ট্রিংটির দৈর্ঘ্য বের করতে চাই, তাহলে সেটা কীভাবে করা যায়?
স্ট্রিং এর দৈর্ঘ্য নির্ণয় করার জন্য আমরা কি করতে পারি? আসলে প্রতিটি c স্ট্রিং এর শেষে একটি নাল ক্যারেক্টার যোগ করা হয় । নাল ক্যারেক্টার হলো । তো আমরা যেটি করতে পারি, আমরা স্ট্রিং এর শুরু থেকে প্রতিটি ক্যারেক্টার ধরে ধরে আগাতে পারি এবং চেক করতে পারি যে সেটি নাল ক্যারেক্টার কি না । যদি নাল ক্যারেক্টার না হয় তাহলে আমরা আমাদের দৈর্ঘ্যের মান এক করে বাড়াবো এবং পরের ক্যারেক্টার চেক করবো । আর যদি নাল ক্যারেক্টার পেয়ে যাই তার মানে আমরা স্ট্রিং এর শেষে পৌছে গেছি, তাই স্ট্রিং এর প্রকৃত দৈর্ঘ্যও আমরা পেয়ে গেছি ।
1#include<stdio.h>
2
3int main(){
4 char name[] = "Abdur Rahman";
5 int length = 0;
6 int i = 0;
7 while(1){
8 if(name[i] != '\0'){
9 i = i+1;
10 }
11 else{
12 break;
13 }
14 }
15 printf("Length is: %d", i);
16 return 0;
17}
18এতো ঝামেলা করতে না চাইলে আমরা থেকে ফাংশন ব্যবহার করতে পারি ।
1#include<stdio.h>
2#include<string.h>
3
4int main(){
5 char name[] = "Abdur Rahman";
6 int length = strlen(name);
7 printf("Length is: %d", length);
8 return 0;
9}
10
