Uploaded by Sujan Prodhan

c programming book bangla by sujan prodhan

advertisement
C programming
বিবিনার থেকে অ্যাডভান্স (cp-Bangla)...॥
Written by
 Sujan prodhan
Rajshahi university computer science and
engineering
1|Page
C ভূ বিো
সি সি?
C হল এেটি সাধারণ-উকেশ্য থরাগ্রাবিিং ভাষা যা 1972 সাকল থিল লযািকরটবরকে থডবনস বরবি তেবর
েকরবিকলন।
পুরাকনা হওযা সকেও এটি এেটি খুি জনবরয ভাষা।
বস দৃঢ়ভাকি ইউবনকের সাকে যুক্ত, োরণ এটি ইউবনে অ্পাকরটিিং বসকেি থলখার জনয তেবর েরা
হকযবিল।
কিন সি সিখবে?
•
•
•
•
এটি বিকের অ্নযেি জনবরয থরাগ্রাবিিং ভাষা
আপবন যবদ বস জাকনন েকি অ্নযানয জনবরয থরাগ্রাবিিং ভাষা থযিন জাভা, পাইেন, বস++,
বস#, ইেযাবদ বশ্খকে আপনার থোন সিসযা হকি না, োরণ বসনটযাে এেই রেি।
জাভা এিিং পাইেকনর িকো অ্নযানয থরাগ্রাবিিং ভাষার েু লনায বস খুি দ্রুে
বস খুি িহুিুখী; এটি অ্যাবিকেশ্ন এিিং রযুবক্ত উভয থেকেই িযিহার েরা থযকে পাকর
সি সিব়ে শুরু ির-C িযিহার শুরু েরকে, থোিাকদর দুটি বজবনস দরোর:
•
•
এেটি থটেট এবডটর, থযিন থনাটপযাড, বস থোড বলখকে
এেটি েম্পাইলার, থযিন GCC, বস থোডকে এিন এেটি ভাষায অ্নুিাদ েরকে যা েবম্পউটার
িুঝকে পারকি
2|Page
থিকি থনওযার জনয অ্কনে থটেট এবডটর এিিং েম্পাইলার আকি। এই টিউকটাবরযাকল, আিরা
এেটি IDE িযিহার েরি (নীকি থদখুন)।
চল ো সি আইসিই ইনস্ট দেই:
এেটি IDE (ইবিকগ্রকটড থডকভলপকিি এনভাযরনকিি) থোডগুকলা সম্পাদনা এিিং েম্পাইল েরকে
িযিহৃে হয।
জনবরয IDE-এর িকধয রকযকি Code::Blocks, Eclipse, এিিং Visual Studio। এগুবল সিস্ত
বিনািূকলয, এিিং এগুবল বস থোড সম্পাদনা এিিং বডিাি উভয থেকেই িযিহার েরা থযকে পাকর।
দ্রষ্টেয: ওকযি-বভবিে IDE এর পাশ্াপাবশ্ োজ েরকে পাকর, বেন্তু োযযোবরো সীবিে।
আিরা আিাকদর টিউকটাবরযাকল Code::Blocks িযিহার েরি , যা শুরু েরার জনয এেটি ভাকলা
জাযিা িকল আবি বিোস েবর।
েু বি http://www.codeblocks.org/ এ থোডব্লকের সিযকশ্ষ সিংস্করণটি খুুঁকজ থপকে পাকরা । ফাইলটি
ডাউনকলাড mingw-setup.exe ের, যা এেটি েম্পাইলার সম্পাদে ইনেল েরকি।
চলিো সি প্রোগ্রোস িং সিখো শুরু কসি:
আিাকদর রেি C ফাইল তেবর েরা যাে।
Codeblocks এ যাও এিিং File > New > Empty File- এ যান ।
বনকির C থোডটি বলকখা এিিং ফাইলটিকে myfirstprogram.c( File > Save File as ):
myfirstprogram.c
#include <stdio.h>
int main() {
printf("Hello World!");
3|Page
return 0;
}
েু বি যবদ উপকরর থোডটি িুঝকে না পাকরা েকি বিন্তা েরকি না - আিরা পরিেী অ্ধযাকয এটি
বিস্তাবরেভাকি আকলািনা েরি। আপােে, থোডটি েীভাকি িালাকে হয োর উপর থফাোস ের।
থোডব্লেগুবলকে, এটি এইরেি হওযা উবিে:
োরপর, থরাগ্রািটি িালাকনার জনয সেল্ড > সেল্ড অ্যান্ড রান এ যান। ফলাফল েু বি এই রেি বেিু টা
থদখকে পরকি:
Hello World!
Process returned 0 (0x0) execution time : 0.011 s
Press any key to continue.
বস বসনটযাে
োিয গঠন
েু বি ইবেিকধযই রেি অ্ধযাকয েকযেিার বনম্নবলবখে থোডটি থদকখি। এটি আরও ভালভাকি থিাঝার
জনয এটি আবি থভকে িুজবি:
4|Page
উিাহরণ
#include <stdio.h>
int main() {
printf("Hello World!");
return 0;Acer
}
উিাহরণটির েযাখযা সনবে সিসি:
লাইন 1: #include <stdio.h> এেটি কহডার ফাইল লাইবেসর যা আিাকদর ইনপুট এিিং আউটপুট
ফািংশ্নগুবলর সাকে োজ েরকে থদয, থযিন printf()(লাইন 4 এ িযিহৃে)। থহডার ফাইলগুবল বস
থরাগ্রািগুবলকে োযযোবরো থযাি েকর।
থোডটি বেভাকি োজ েকর িুঝকে না পারকল বিন্তা েরকি না #include <stdio.h>। এটিকে এিন
বেিু বহসাকি ভাকিা যা (রায) সিযদা থোিার থরাগ্রাকি উপবিে হয।
লাইন 2: এেটি ফাুঁো লাইন। বস সাদা িান উকপো েকর। বেন্তু আিরা থোডটিকে আরও পঠনকযািয
েরকে এটি িযিহার েবর।
লাইন 3: আকরেটি বজবনস যা সিসিয এেটি বস থরাগ্রাকি উপবিে হয, ো
হল main()। একে ফাাংিন িলা হয । এর থোুঁেডা িন্ধনীর বভেকর থযকোন থোড {}োযযের েরা হকি।
লাইন 4: printf() এেটি ফাাংিন যা বিকন পাঠয আউটপুট/বরি েরকে িযিহৃে হয। আিাকদর
উদাহরকণ এটি "হযাকলা ওযার্ল্য" আউটপুট েরকি।
মবন রাখবে: রবেটি C থেটকিি এেটি থসবিকোলন বদকয থশ্ষ হয;
দ্রষ্টেয: এর িূল অ্িংশ্টি int main()এইভাকি থলখা থযকে পাকর:
int main(){printf("Hello World!");return 0;}
মবন রাখবে: েম্পাইলার সাদা থেস উকপো েকর। যাইকহাে, এোবধে লাইন থোডটিকে আরও
পঠনকযািয েকর থোকল।
লাইন 5: ফািংশ্ন return 0 থশ্ষ েকর । main()
লাইন 6:} িূল ফািংশ্নটি আসকল থশ্ষ েরকে থলাবজিং থোুঁেডা িন্ধনী থযাি েরকে ভু লকিন না ।
5|Page
বস আউটপুট (বরি থটেট)
আউটপুট (সিন্ট কটক্সট)
িান আউটপুট েরকে িা বস-কে পাঠয িুদ্রণ েরকে, েু বি printf() ফািংশ্নটি িযিহার েরকি:
উিাহরণ
#include <stdio.h>
int main() {
printf("Hello World!");
return 0;
}
েু বি থোিার ইিা িে অ্কনে printf()ফািংশ্ন িযিহার েরকে পাকরন. যাইবহাি , িকন রাখকি থয এটি
আউটপুকটর থশ্কষ এেটি নেু ন লাইন সবিকিশ্ েকর না:
উিাহরণ
#include <stdio.h>
int main() {
printf("Hello World!");
printf("I am learning C.");
return 0;
}
সি নতু ন লাইন
নতু ন লাইন
এেটি নেু ন লাইন সবিকিশ্ েরকে, েু বি \n অ্ের িযিহার েরকে পাকরা:
6|Page
উিাহরণ
#include <stdio.h>
int main() {
printf("Hello World!\n");
printf("I am learning C.");
return 0;
}
printf() েু বি এেটি এেে ফািংশ্ন সহ এোবধে লাইন আউটপুট েরকে পাকরা । যাইকহাে, সকিেন
োেকে হকি.....
উিাহরণ
#include <stdio.h>
int main() {
printf("Hello World!\nI am learning C.\nAnd it is awesome!");
return 0;
}
❖ :\n পরেকরর পর দুটি অ্ের এেটি ফাুঁো লাইন তেবর েরকি:
উিাহরণ
#include <stdio.h>
int main() {
printf("Hello World!\n\n");
printf("I am learning C.");
return 0;
}
\n
এটা আিবল িী??
বনউলাইন অ্ের ( \n)টিকে এেটি এবেপ সিবিাব়েন্স িলা হয এিিং এটি োসযারকে পদয ার পরিেী
লাইকনর শুরুকে োর অ্িিান পবরিেয ন েরকে িাধয েকর। এটি এেটি নেু ন লাইকনর ফলাফল।
অ্নযানয তিধ পালাকনার ক্রিগুবলর উদাহরণ হল:
7|Page
এবেপ সিবিাব়েন্স
েণণ না
\t
এেটি অ্নুভূবিে টযাি তেবর েকর
েুস সনলে প্চষ্টো কলি প্েখ
\\
এেটি িযােস্ল্যাশ্ অ্ের সবিকিশ্ েরান (\)
েুস সনলে প্চষ্টো কলি প্েখ
\"
এেটি ডিল উদ্ধৃবে অ্ের সবিকিশ্ েরান
েুস সনলে প্চষ্টো কলি প্েখ
C Comments
Comments in C
comment থোড িযাখযা েরকে িযিহার েরা থযকে পাকর, এিিং এটি আকরা পঠনকযািয েরকে. এটি
বিেল্প থোড পরীো েরার সিয িযিহার েরা থযকে পাকর।অ্েিা েু বি প্কোলনো সকিু হোইড কলি িোখলে চোও েখন
কল ন্ট প্কোড ব্যব্হোি কিলব্ ।
িন্তিয এিি-বরখাযুক্ত িা েহু-বরখাযুক্ত হকে পাকর ।
Single-line Comments
এেে-লাইন িন্তিয দুটি ফকরাযাডয স্ল্যাশ্ ( //) বদকয শুরু হয।
লাইকনর িধযিেী এিিং থশ্কষর থযকোকনা পাঠ //েম্পাইলার দ্বারা উকপো েরা হয (বনিযাহ েরা হকি
না)।
এই উদাহরণ থোকডর এেটি লাইকনর আকি এেটি এেে-লাইন িন্তিয িযিহার েকর:
8|Page
উিাহরণ
// This is a comment
printf("Hello World!");
এই উদাহরণ থোকডর এেটি লাইকনর থশ্কষ এেটি এেে-লাইন িন্তিয িযিহার েকর:
উিাহরণ
printf("Hello World!"); // This is a comment
C Multi-line Comments
িহু-লাইন িন্তিয বদকয শুরু হয /*এিিং থশ্ষ হয */।
/*এিিং এর িকধয থযকোন পাঠয */েম্পাইলার দ্বারা উকপো েরা হকি:
উিাহরণ
/* The code below will print the words Hello World!
to the screen, and it is amazing */
printf("Hello World!");
Single or multi-line comments?
েু বি থোনটি িযিহার েরকে িাও ো থোিার উপর বনভয র েকর। সাধারণে, আিরা //সিংবেপ্ত
িন্তকিযর /* */জনয এিিং দীর্য সিকযর জনয িযিহার েবর।
আচ্ছো প্েসিলেব্ি সেসনিটো কী?🤓
থভবরকযিল হল ডাটা িান সিংরেকণর পাে।
বস-কে, বিবভি ধরবনর থভবরকযিল রকযকি (বিবভি েীওযাডয বদকয সিংোবযে), উদাহরণস্বরূপ:
•
int- দশ্বিে িাডা পূণযসিংখযা (সম্পূণয সিংখযা) সিংরেণ েকর, থযিন 123 িা -123
9|Page
•
float- থলাটিিং পকযি সিংখযা সিংরেণ েকর, দশ্বিে সহ, থযিন 19.99 িা -19.99
•
char- এেে অ্ের সিংরেণ েকর, থযিন 'a' িা 'B'। িার িান এিি উদ্ধৃ সত দ্বারা কেসষ্টত হ়ে
আসি কী ভোলে দভসিলেে সিসিযোি কিলেো?
এেটি থভবরকযিল তেবর েরকে, ধরনটি বনবদয ষ্ট ের এিিং এটিকে এেটি মান িরাে ের :
োিয গঠন
type variableName = value;
থযখাকন টাইপ হল C রোকরর এেটি (কযিন int), এিিং variableName হল থভবরকযিকলর নাি
(কযিন x িা myName )। থভবরকযিকলর এেটি িান বনধযারণ েরকে িমান সেহ্ন িযিহার েরা হয ।
সুেরািং, এেটি থভবরকযিল তেবর েরকে যা এিটি িাংখযা িাংরক্ষণ েরকে হকি , বনম্নবলবখে উদাহরণটি
থদেখ:
উিাহরণ
myNum of type নাকি এেটি থভবরকযিল তেবর েরুন intএিিং একে িান 15 িরাে েরুন :
int myNum = 15;
েু বি িান বনধযারণ না েকর এেটি থভবরকযিল থর্াষণা েরকে পার এিিং পকর িান বনধযারণ েরকে পার:
উিাহরণ
int myNum;
myNum = 15;
দ্রষ্টেয: েু বি যবদ এেটি বিদযিান থভবরকযিকলর জনয এেটি নেু ন িান বনধযারণ েকরন েকি এটি পূিযিেী
িানটিকে ওভাররাইট েরকি:
উিাহরণ
int myNum = 15; // myNum is 15
myNum = 10; // Now myNum is 10
10 | P a g e
Output Variables
েু বি আউটপুট অ্ধযায থেকে বশ্কখি থয েু বি printf() ফািংশ্কনর সাকে িান/বরি থটেট আউটপুট
েরকে পার :
উিাহরণ
printf("Hello World!");
অ্নযানয অ্কনে থরাগ্রাবিিং ভাষাকে (কযিন পাইেন , জাভা , এিিং C++ ), আপবন সাধারণে এেটি
থভবরকযিকলর িান রদশ্যন েরকে এেটি সিন্ট ফাাংিন েযেহার িরবে। যাইকহাে, এটি বস থে সম্ভি নয:
উিাহরণ
int myNum = 15;
printf(myNum); // Nothing happens
বস-কে থভবরকযিল আউটপুট েরকে, আপনাকে অ্িশ্যই "ফরিযাট থেবসফাযার" নাকি পবরবিে হকে হকি।
ফরমযাট কেসিফা়োর
printf() থভবরকযিলটি েী ধরকনর থডটা সিংরেণ েরকি ো েম্পাইলারকে জানাকে ফািংশ্কনর সাকে
ফিযযাট থেবসফাযারগুবল িযিহার েরা হয । এটি িূলে পবরিেয নশ্ীল িাকনর জনয এেটি িানধারে।
এেটি বিনযাস থেবসফাযার এেটি শ্োিংশ্ বিহ্ন বদকয শুরু হয %, এেটি অ্ের দ্বারা অ্নুসরণ েরা হয।
উদাহরণস্বরূপ, এেটি intথভবরকযিকলর িান আউটপুট েরকে, আপনাকে অ্িশ্যই ফরিযাট বনবদয ষ্টেরণ
িযিহার েরকে হকি %dিা ফািংশ্কনর %i বভেকর ডিল থোট দ্বারা থিবষ্টে েরকে হকি:printf()
উিাহরণ
int myNum = 15;
printf("%d", myNum);
// Outputs 15
11 | P a g e
অ্নযানয ধরকনর িুদ্রণ েরকে, এর %cজনয charএিিং এর %fজনয িযিহার েরুন float:
উিাহরণ
// Create variables
int myNum = 5;
float myFloatNum = 5.99;
char myLetter = 'D';
// Integer (whole number)
// Floating point number
// Character
// Print variables
printf("%d\n", myNum);
printf("%f\n", myFloatNum);
printf("%c\n", myLetter);
পাঠয এিিং এেটি থভবরকযিল উভযকে এেবেে েরকে, printf()ফািংশ্কনর বভেকর এেটি েিা বদকয
আলাদা েরুন:
উিাহরণ
int myNum = 5;
printf("My favorite number is: %d", myNum);
এেটি এেে printf()ফািংশ্কন বিবভি ধরকনর িুদ্রণ েরকে, আপবন বনম্নবলবখেগুবল িযিহার েরকে
পাকরন:
উিাহরণ
int myNum = 5;
char myLetter = 'D';
printf("My number is %d and my letter is %c", myNum, myLetter);
।
এিিাবে কেসরব়েেল কযাগ িরুন
অ্নয থভবরকযিকল এেটি থভবরকযিল থযাি েরকে, আপবন + অ্পাকরটর িযিহার েরকে পাকরন:
12 | P a g e
উিাহরণ
int x = 5;
int y = 6;
int sum = x + y;
printf("%d", sum);
এিাসধি কেসরব়েেল ক াষণা িরুন
এেই ধরকনর এোবধে থভবরকযিল থর্াষণা েরকে, এেটি িমা দ্বারা পৃেি িরা োবলো িযিহার েরুন:
উিাহরণ
int x = 5, y = 6, z = 50;
printf("%d", x + y + z);
আপবন এেই ধরকণর এোবধে থভবরকযিকলর জনয এিই মান সনধণ ারণ িরবত পাবরন:
উিাহরণ
int x, y, z;
x = y = z = 50;
printf("%d", x + y + z);
C পসরেতণনিীল নাম
সিস্ত C কেসরব়েেলবি অ্ননয নাম বদকয সেসহ্নত েরকে হকি ।
এই অ্ননয নািগুবলকে িনাক্তিারী িলা হয ।
শ্নাক্তোরী থিাট নাি (কযিন x এিিং y) িা আরও িণযনািূলে নাি (িযস, থযািফল, থিাট আযেন)
হকে পাকর।
13 | P a g e
দ্রষ্টেয: থিাধিিয এিিং রেণাকিেণকযািয থোড তেবর েরার জনয িণযনািূলে নাি িযিহার েরার পরািশ্য
থদওযা হয:
উিাহরণ
// Good
int minutesPerHour = 60;
// OK, but not so easy to understand what m actually is
int m = 60;
থভবরকযিকলর নািেরকণর সাধারণ সন়েম হল:
•
•
•
•
•
নাকির অ্ের, অ্ঙ্ক এিিং আন্ডারকস্কার োেকে পাকর
নাি অ্িশ্যই এেটি অ্ের িা এেটি আন্ডারকস্কার বদকয শুরু হকে হকি (_)
নািগুবল থেস সিংকিদনশ্ীল ( myVarএিিং myvarবিবভি পবরিেয নশ্ীল)
নািগুবলকে থহাযাইটকেস িা বিকশ্ষ অ্ের থযিন!, #, %, ইেযাবদ োেকে পাকর না।
সিংরবেে শ্ব্দ (কযিন int) নাি বহকসকি িযিহার েরা যাকি না
C Data Types
Data Types
থভবরকযিল অ্ধযাকয থযিন িযাখযা েরা হকযকি , বস-কে এেটি থভবরকযিল অ্িশ্যই এেটি বনবদয ষ্ট কডটা
টাইপ হকে হকি এিিং এটি রদশ্যন েরকে আপনাকে অ্িশ্যই ফািংশ্কনর বভেকর এেটি ফরমযাট
কেসিফা়োর েযেহার িরবত হবে:printf()
উিাহরণ
// Create variables
int myNum = 5;
float myFloatNum = 5.99;
char myLetter = 'D';
// Integer (whole number)
// Floating point number
// Character
// Print variables
printf("%d\n", myNum);
14 | P a g e
printf("%f\n", myFloatNum);
printf("%c\n", myLetter);
Basic Data Types
থডটা টাইপ থভবরকযিল সিংরেণ েরকি েকেযর আোর এিিং ধরন বনবদয ষ্ট েকর।
এই টিউকটাবরযাকল, আিরা সিকিকয থিৌবলে বিষযগুবলকে থফাোস েরি:
Data Type
Size
Description
int
2 or 4
bytes
Stores whole numbers, without decimals
float
4 bytes
Stores fractional numbers, containing one or more decimals. Sufficient for storing 7
decimal digits
double
8 bytes
Stores fractional numbers, containing one or more decimals. Sufficient for storing
15 decimal digits
char
1 byte
Stores a single character/letter/number, or ASCII values
Basic Format Specifiers
রবেটি ডাটা টাইকপর জনয আলাদা ফরিযাট থেবসফাযার আকি। এখাকন োকদর বেিু :
15 | P a g e
Format Specifier
Data Type
Try it
%d or %i
int
Try it »
%f
float
Try it »
%lf
double
Try it »
%c
char
Try it »
%s
Used for strings (text), which you will learn more about in a later
chapter
Try it »
C Constants
ধ্রুেি
েু বি যখন অ্নযএর (িা বনকজকে) বিদযিান পবরিেয নশ্ীল িানগুবলকে ওভাররাইড েরকে িাও না,
েখন constেীওযাডযটি িযিহার ের (এটি পবরিেয নশ্ীলটিকে "ধ্রুিে" বহসাকি থর্াষণা েরকি, যার
অ্েয অ্পসরেতণনী়ে এোং শুধুমাত্র পঠনবযাগয ):
উিাহরণ
const int myNum = 15; // myNum will always be 15
myNum = 10; // error: assignment of read-only variable 'myNum'
16 | P a g e
যখন িান পবরিেয ন হওযার সম্ভািনা থনই এিন িানগুবল োকে েখন থোিাকে সিযদা পবরিেয নশ্ীলটিকে
ধ্রুিে বহসাকি থর্াষণা েরা উবিে:
উিাহরণ
const int minutesPerHour = 60;
const float PI = 3.14;
Constants উপর কনাট
যখন েু বি এেটি ধ্রুিে পবরিেয নশ্ীল থর্াষণা েরকি, েখন এটি এেটি িান বদকয িরাে েরা
আিশ্যে:
উিাহরণ
এটার িে:
const int minutesPerHour = 60;
েকি এটি িাজ িরবে না :
const int minutesPerHour;
minutesPerHour = 60; // error
োবলা অ্নুিীলন
ধ্রুিে থভবরকযিল সম্পকেয আকরেটি বজবনস, এটি িড হাকের সাকে োকদর থর্াষণা েরা ভাল অ্নুশ্ীলন
বহসাকি বিকিবিে হয। এটি রকযাজনীয নয, েকি থোড পাঠকযািযোর জনয দরোরী এিিং বস
থরাগ্রািারকদর জনয সাধারণ:
উিাহরণ
const int BIRTHYEAR = 1980;
17 | P a g e
C Operators
অ্পাবরটর
অ্পাকরটরগুবল থভবরকযিল এিিং িানগুবলর উপর বক্রযােলাপ সম্পাদন েরকে িযিহৃে হয।
নীকির উদাহরকণ, আিরা দুটি িান এেসাকে থযাি েরকে + অ্পাবরটর েযেহার িসর:
উিাহরণ
int myNum = 100 + 50;
যবদও + অ্পাকরটরটি রাযশ্ই দুটি িান এেসাকে যুক্ত েরকে িযিহৃে হয, থযিন উপকরর উদাহরকণ, এটি
এেটি থভবরকযিল এিিং এেটি িান, িা এেটি পবরিেয নশ্ীল এিিং অ্নয এেটি পবরিেয নশ্ীল যুক্ত েরকেও
িযিহার েরা থযকে পাকর:
উিাহরণ
int sum1 = 100 + 50;
int sum2 = sum1 + 250;
int sum3 = sum2 + sum2;
// 150 (100 + 50)
// 400 (150 + 250)
// 800 (400 + 400)
বস অ্পাকরটরকদর বনম্নবলবখে গ্রুকপ বিভক্ত েকর:
•
•
•
•
•
পাটিিবণে অ্পাকরটর
অ্যাসাইনকিি অ্পাকরটর
েু লনা অ্পাকরটর
লবজেযাল অ্পাকরটর
বিটওযাইজ অ্পাকরটর
Arithmetic Operators
পাটিিবণে অ্পাকরটরগুবল সাধারণ িাবণবেে বক্রযােলাপ সম্পাদন েরকে িযিহৃে হয,সনলচ প্েো োলেি একটো
েোসিকো সেিো ।
18 | P a g e
Operator
Name
Description
Example
Try it
+
Addition
Adds together two values
x+y
Try it »
-
Subtraction
Subtracts one value from another
x-y
Try it »
*
Multiplication
Multiplies two values
x*y
Try it »
/
Division
Divides one value by another
x/y
Try it »
%
Modulus
Returns the division remainder
x%y
Try it »
++
Increment
Increases the value of a variable by 1
++x
Try it »
--
Decrement
Decreases the value of a variable by 1
--x
Try it »
Assignment Operators
অ্যাসাইনকিি অ্পাকরটরগুবল থভবরকযিকলর িান বনধযারণ েরকে িযিহৃে হয।
নীকির উদাহরকণ, আিরা x নািে এেটি থভবরকযিকল 10 িান বনধযারণ েরকে অ্যািাইনবমন্ট অ্পাকরটর
( ) িযিহার েবর :=
19 | P a g e
উিাহরণ
int x = 10;
সিংকযাজন অ্যািাইনবমন্ট অ্পাকরটর ( +=) এেটি থভবরকযিকল এেটি িান থযাি েকর:
উিাহরণ
int x = 10;
x += 5;
সিস্ত অ্যাসাইনকিি অ্পাকরটরকদর এেটি োবলো বনকি সেিো :
Operator
Example
Same As
Try it
=
x=5
x=5
Try it »
+=
x += 3
x=x+3
Try it »
-=
x -= 3
x=x-3
Try it »
*=
x *= 3
x=x*3
Try it »
/=
x /= 3
x=x/3
Try it »
%=
x %= 3
x=x%3
Try it »
20 | P a g e
&=
x &= 3
x=x&3
Try it »
|=
x |= 3
x=x|3
Try it »
^=
x ^= 3
x=x^3
Try it »
>>=
x >>= 3
x = x >> 3
Try it »
<<=
x <<= 3
x = x << 3
Try it »
Comparison Operators
েু লনা অ্পাকরটর দুটি িান েু লনা েরকে িযিহার েরা হয.
দ্রষ্টেয: এেটি েু লনার বরটানয িান হয সেয ( 1) িা বিেযা ( 0)।
বনম্নবলবখে উদাহরকণ, আিরা 3-এর থেকে েড়> বেনা ো খুুঁকজ থির েরকে অ্পাকরটর ( ) িযিহার
েবর:
উিাহরণ
int x = 5;
int y = 3;
printf("%d", x > y); // returns 1 (true) because 5 is greater than 3
সিস্ত েু লনা অ্পাকরটকরর এেটি োবলো বনকি সেিো :
21 | P a g e
Operator
Name
Example
Try it
==
Equal to
x == y
Try it »
!=
Not equal
x != y
Try it »
>
Greater than
x>y
Try it »
<
Less than
x<y
Try it »
>=
Greater than or equal to
x >= y
Try it »
<=
Less than or equal to
x <= y
Try it »
Logical Operators
লবজেযাল অ্পাকরটরগুবল থভবরকযিল িা িানগুবলর িকধয যুবক্ত বনধযারণ েরকে িযিহৃে হয:
Operator
Name
Description
Example
Try it
&&
Logical and
Returns true if both statements are true
x < 5 && x < 10
Try it »
22 | P a g e
||
Logical or
Returns true if one of the statements is true
x < 5 || x < 4
Try it »
!
Logical not
Reverse the result, returns false if the result
is true
!(x < 5 && x < 10)
Try it »
Sizeof Operator
Sizeof এেটি ডাটা টাইপ িা থভবরকযিকলর থিিবর সাইজ (িাইকট) অ্পাকরটকরর সাকে পাওযা যাকি :
উিাহরণ
int myInt;
float myFloat;
double myDouble;
char myChar;
printf("%lu\n",
printf("%lu\n",
printf("%lu\n",
printf("%lu\n",
sizeof(myInt));
sizeof(myFloat));
sizeof(myDouble));
sizeof(myChar));
থনাট ের থয আিরা %lu ফলাফল বরি েরকে বিনযাস বনবদয ষ্টেরণ িযিহার েবর, পবরিকেয %d। োরণ
েম্পাইলার আশ্া েকর size of অ্পাকরটর ( ) এর পবরিকেয এেটি ( ) long unsigned intথফরে
থদকি । বেিু েবম্পউটাকর এটি োজ েরকে পাকর , বেন্তু এটি িযিহার েরা বনরাপদ ।%luint%d%d%lu
C If ... Else
িতণােলী এোং যসি সেেৃসত
আপবন অ্পাকরটর েু লনা অ্ধযায থেকে বশ্কখি থয C িবণে থেকে স্বাভাবিে থযৌবক্তে শ্েয সিেযন েকর:
23 | P a g e
•
•
•
•
•
•
এর থিকয েি: a < b
এর থেকে েি িা সিান: a <= b
এর থিকয িড: a > b
এর থেকে িড িা সিান: a >= b
a == খ এর সিান
এর সিান নয: a!= b
েু বি বিবভি বসদ্ধাকন্তর জনয বিবভি বক্রযা সম্পাদন েরকে এই শ্েয গুবল িযিহার েরকে পার।
C এর বনম্নবলবখে শ্েয সাকপে বিিৃবে রকযকি:
•
•
•
•
ifএেটি বনবদয ষ্ট শ্েয সেয হকল োযযের েরার জনয থোকডর এেটি ব্লে বনবদয ষ্ট েরকে িযিহার
ের
elseএেই শ্েয বিেযা হকল, এবেবেউট েরার জনয থোকডর এেটি ব্লে বনবদয ষ্ট েরকে িযিহার
ের
পরীো েরার জনয এেটি নেু ন শ্েয বনবদয ষ্ট েরকে িযিহার ের else if, যবদ রেি শ্েয টি
বিেযা হয
Switch োযযের েরার জনয থোকডর অ্কনে বিেল্প ব্লে বনবদয ষ্ট েরকে িযিহার ের
যসি সেেৃসত
If বস থোকডর এেটি ব্লে বনবদয ষ্ট েরকে থেটকিিটি িযিহার েরুন যবদ এেটি শ্েয োকে true।
োিয গঠন
if (condition) {
// block of code to be executed if the condition is true
}
িকন রাখিা থয if থিাট হাকের অ্েকর আকি। িড হাকের অ্ের (If িা IF) এেটি ত্রুটি তেবর
েরকি।
নীকির উদাহরকণ, 20 18-এর থিকয িড বেনা ো খুুঁকজ থির েরকে আিরা দুটি িান পরীো েবর৷
যবদ শ্েয টি হয true, বেিু পাঠয িুদ্রণ ের:
24 | P a g e
উিাহরণ
if (20 > 18) {
printf("20 is greater than 18");
}
আিরা থভবরকযিল পরীো েরকে পাবর:
উিাহরণ
int x = 20;
int y = 18;
if (x > y) {
printf("x is greater than y");
}
উিাহরণ েযাখযা িরা হব়েবে
উপকরর উদাহরকণ আিরা x এিিং y দুটি থভবরকযিল িযিহার েবর , পরীো েরার জনয x y থেকে িড
বেনা ( >অ্পাকরটর িযিহার েকর)। থযকহেু x হল 20, এিিং y হল 18, এিিং আিরা জাবন থয 20
18-এর থেকে িড, আিরা বিকন বরি েবর থয "x y-এর থিকয িড"।
The if Statement
Else যবদ শ্েয টি োযযের েরা হয েকি থোকডর এেটি ব্লে বনবদয ষ্ট েরকে বিিৃবেটি িযিহার ের
false।
Syntax
if (condition) {
// block of code to be executed if the condition is true
} else {
// block of code to be executed if the condition is false
}
25 | P a g e
উিাহরণ
int time = 20;
if (time < 18) {
printf("Good day.");
} else {
printf("Good evening.");
}
// Outputs "Good evening."
উিাহরণ েযাখযা িরা হব়েবে
উপকরর উদাহরকণ, সিয (20) 18-এর থিকয থিবশ্, োই শ্েয হল false। এই োরকণ, আিরা elseশ্কেয
এবিকয যাই এিিং বিকন " Good evening " িুদ্রণ েবর। সিয 18 এর েি হকল, থরাগ্রািটি " Good
evening " িুদ্রণ েরকি।
The else if Statement
else ifরেি শ্েয হকল এেটি নেু ন শ্েয বনবদয ষ্ট েরকে বিিৃবেটি িযিহার েরুন false।
Syntax
if (condition1) {
// block of code to be executed if condition1 is true
} else if (condition2) {
// block of code to be executed if the condition1 is false and
condition2 is true
} else {
// block of code to be executed if the condition1 is false and
condition2 is false
}
উিাহরণ
int time = 22;
if (time < 10) {
printf("Good morning.");
26 | P a g e
} else if (time < 20) {
printf("Good day.");
} else {
printf("Good evening.");
}
// Outputs "Good evening."
উিাহরণ েযাখযা িরা হব়েবে
উপকরর উদাহরকণ, সিয (22) 10-এর থিকয থিবশ্, োই িেম িতণ হল false। else if
বিিৃবেকে পরিেী শ্েয টিও রকযকি false, োই আিরা শ্কেয িকল যাই else থযকহেু িতণ 1 এিিং িতণ 2
উভযই false- এিিং বিকন বরি েরুন "Good evening"।
যাইকহাে, সিয 14 হকল, আিাকদর থরাগ্রাি Good evening িুদ্রণ েরকি।
Another Example
এই উদাহরণটি থদখায থয েু বি
েরকে িযিহার েরকে পার :
েীভাকি if..else এেটি সিংখযা ধনাত্মে িা ঋণাত্মে ো খুুঁকজ থির
উিাহরণ
int myNum = 10; // Is this a positive or negative number?
if (myNum > 0)
printf("The value is a positive number.");
else if (myNum < 0)
printf("The value is a negative number.");
else
printf("The value is 0.");
C Short Hand If Else
27 | P a g e
Short Hand If...Else (Ternary Operator)
এিাডাও এেটি শ্টয-হযান্ড ইফ অ্নয আকি, যা সত্রনাসর অ্পাবরটর বহসাকি পবরবিে োরণ এটি বেনটি
অ্পাকরন্ড বনকয িঠিে। এটি এেটি লাইন বদকয থোকডর এোবধে লাইন রবেিাপন েরকে িযিহার েরা
থযকে পাকর। এটি রাযশ্ই সরল রবেিাপন েরকে িযিহৃে হয if else থেটকিি:
োিয গঠন
variable = (condition) ? expressionTrue : expressionFalse;
থলখার পবরিকেয :
উিাহরণ
int time = 20;
if (time < 18) {
printf("Good day.");
} else {
printf("Good evening.");
}
েুস
সহজভাকি বলখকে পার:
উিাহরণ
#include <stdio.h>
int main() {
int time = 20;
(time < 18) ? printf("Good day.") : printf("Good evening.");
return 0;
}// Good evening.
28 | P a g e
যবদ ঐবেহযিে if...else থেটকিি িা টারনাবর অ্পাকরটর িযিহার েরকে িাO েকি এটি সম্পূণযরূকপ
tomar উপর বনভয র েকর।
C Switch
িুইে কেটবমন্ট
অ্বনি if..else বিিৃবে থলখার পবরিকেয , আপবন switch বিিৃবে িযিহার েরকে পার।
বিিৃবেটি switch োযযের েরার জনয অ্কনেগুবল থোড ব্লকের িকধয এেটি বনিযািন েকর:
োিয গঠন
switch(expression) {
case x:
// code block
break;
case y:
// code block
break;
default:
// code block
}
এটা এভাকি োজ েকর:
•
•
•
•
•
অ্বভিযবক্ত switchএেিার িূলযাযন েরা হয
অ্বভিযবক্তর িান রবেটির িাকনর সাকে েু লনা েরা হয case
যবদ এেটি বিল োকে, থোকডর সিংবিষ্ট ব্লেটি োযযের েরা হয
বিিৃবেটি break সুইি ব্লে থেকে থিবরকয আকস এিিং োযযের েরা িন্ধ েকর থদয
বিিৃবেটি default ঐবিে, এিিং থোন থেস বিল না োেকল িালাকনার জনয বেিু থোড
বনবদয ষ্ট েকর
নীকির উদাহরণটি সপ্তাকহর বদকনর নাি িণনা েরকে সপ্তাকহর বদন সিংখযা িযিহার েকর:
29 | P a g e
উিাহরণ
#include <stdio.h>
int main() {
int day = 4;
switch (day) {
case 1:
printf("Monday");
break;
case 2:
printf("Tuesday");
break;
case 3:
printf("Wednesday");
break;
case 4:
printf("Thursday");
break;
case 5:
printf("Friday");
break;
case 6:
printf("Saturday");
break;
case 7:
printf("Sunday");
break;
}
return 0;
30 | P a g e
}
// Outputs "Thursday" (day 4)
The break Keyword
যখন C এেটি break েীওযাকডয থপৌুঁিায, েখন এটি সুইি ব্লে থেকে থিবরকয যায।
এটি ব্লকের বভেকর আরও থোড এিিং থেস থটবেিং িালাকনা িন্ধ েরকি।
যখন এেটি বিল পাওযা যায, এিিং োজ সম্পি হয, এটি এেটি বিরবের জনয সিয. এর থিবশ্
পরীোর রকযাজন থনই।
এেটি বিরবে োযযের েরার অ্কনে সিয িাুঁিাকে পাকর োরণ এটি সুইি ব্লকের িাবে সিস্ত থোকডর
সম্পাদনকে "উকপো" েকর।
The default Keyword
থোন থেস বিল defaultনা োেকল েীওযাডযটি িালাকনার জনয বেিু থোড বনবদয ষ্ট েকর:
উিাহরণ
#include <stdio.h>
int main() {
int day = 4;
switch (day) {
case 6:
printf("Today is Saturday");
break;
case 7:
31 | P a g e
printf("Today is Sunday");
break;
default:
printf("Looking forward to the Weekend");
}
return 0; }
// Outputs "Looking forward to the Weekend"
🙄দ্রষ্টেয: বডফল্ট েীওযাডযটি সুইকির থশ্ষ বিিৃবে বহসাকি িযিহার েরা আিশ্যে, এিিং এটির বিরবের
রকযাজন থনই।
C While Loop
লুপি
এেটি বনবদয ষ্ট শ্কেয থপৌুঁিাকনা পযযন্ত লুপগুবল থোকডর এেটি ব্লে োযযের েরকে পাকর।
লুপগুবল সুবিধাজনে োরণ োরা সিয িাুঁিায, ত্রুটি েিায এিিং োরা থোডকে আরও পাঠকযািয েকর
থোকল।
যখন লুপ
থোকডর whileএেটি ব্লকের িাধযকি লুপ লুপ হয যেেণ না এেটি বনবদয ষ্ট শ্েয োকে true:
োিয গঠন
while (condition) {
// code block to be executed
}
নীকির উদাহরকণ, লুকপর থোডটি িারিার িলকি, যেেণ না এেটি থভবরকযিল ( i) 5-এর েি হয:
32 | P a g e
উিাহরণ
int i = 0;
while (i < 5) {
printf("%d\n", i);
i++;
}
দ্রষ্টেয: শ্কেয িযিহৃে থভবরকযিলটি িাডাকে ভু লকিন না ( i++), অ্নযোয লুপ েখনই থশ্ষ হকি
না!😁😁
Do/While Loop
লুপটি লুকপর do/while এেটি তিেবল্পে while। এই লুপটি থোড ব্লেটি এেিার এবেবেউট েরকি,
েবন্ডশ্নটি সেয বেনা ো পরীো েরার আকি, েবন্ডশ্নটি সেয হকল এটি লুপটি পুনরািৃবি েরকি।
োিয গঠন
do {
// code block to be executed
}while (condition);
নীকির উদাহরণটি এেটি do/while লুপ িযিহার েকর। শ্েয টি বিেযা হকলও লুপটি সিযদা অ্ন্তে এেিার
োযযের েরা হকি, োরণ শ্েয টি পরীো েরার আকি থোড ব্লেটি োযযের েরা হয:
উিাহরণ
#include <stdio.h>
int main() {
int i = 0;
do {
33 | P a g e
printf("%d\n", i);
i++;
}
while (i < 5);
return 0;
}
Output::
0
1
2
3
4
েবন্ডশ্কন িযিহৃে থভবরকযিল িাডাকে ভু লকিন না, অ্নযোয লুপ থশ্ষ হকি না!
C For Loop
লুবপর জনয
যখন েু বি জান থয েু বি ঠিে েেিার থোড ব্লকের িাধযকি লুপ েরকে িাও, for লুকপর পবরিকেয
while লুপ িযিহার ের :
োিয গঠন
for (statement 1; statement 2; statement 3) {
// code block to be executed
}
থোড ব্লে োযযের েরার আকি কেটবমন্ট 1 িাযণ ির িরা হ়ে (এিোর)।
সেেৃসত 2 থোড ব্লে োযযের েরার শ্েয সিংোবযে েকর।
34 | P a g e
কিাড ব্লি িাযণ ির হও়োর পবর কেটবমন্ট 3 োযযের েরা হয (রবেিার)।
নীকির উদাহরণটি 0 থেকে 4 নম্বরগুবল বরি েরকি:
উিাহরণ
#include <stdio.h>
int main() {
int i;
for (i = 0; i < 5; i++) {
printf("%d\n", i);
}
return 0;
}
output::
0
1
2
3
4
উিাহরণ েযাখযা িরা হব়েবে
থেটকিি 1 লুপ শুরু হওযার আকি এেটি থভবরকযিল থসট েকর (int i = 0)।
বিিৃবে 2 লুপ িালাকনার জনয শ্েয সিংোবযে েকর (i অ্িশ্যই 5 এর েি হকে হকি)। শ্েয সেয হকল,
লুপ আিার শুরু হকি, যবদ এটি বিেযা হয, লুপ থশ্ষ হকি।
বিিৃবে 3 রবেিার লুকপর থোড ব্লে বনিযাহ েরা হকল এেটি িান (i++) িৃবদ্ধ েকর।
35 | P a g e
আবরিটি উিাহরণ
এই উদাহরণটি শুধুিাে 0 এিিং 10 এর িকধয সিান িান িুদ্রণ েরকি:
#include <stdio.h>
int main() {
int i;
for (i = 0; i <= 10; i = i + 2) {
printf("%d\n", i);
}
return 0;
}
Output::
0
2
4
6
8
10
C Break and Continue
সেরসত
েু বি ইবেিকধয breakএই টিউকটাবরযাকলর আকির অ্ধযাকয িযিহৃে বিিৃবে থদকখি। এটি এেটি switch
বিিৃবে থেকে "জাম্প আউট" িযিহার েরা হকযবিল।
বিিৃবেটি লুপ break থেকে লাফাকনার জনযও িযিহার েরা থযকে পাকর ।
I এর িান 4 এর সিান হকল এই উদাহরণটি লুপ থেকে থিবরকয আকস :
36 | P a g e
উিাহরণ
int i;
for (i = 0; i < 10; i++) {
if (i == 4) {
break;
}
printf("%d\n", i);
}
োসলব়ে যান
বিিৃবেটি continue এেটি পুনরািৃবি (লুকপ) থভকে থদয, যবদ এেটি বনবদয ষ্ট শ্েয র্কট এিিং লুকপ
পরিেী পুনরািৃবির সাকে িলকে োকে।
এই উদাহরণটি 4 এর িান এবডকয যায:
উিাহরণ
int i;
for (i = 0; i < 10; i++) {
if (i == 4) {
continue;
}
printf("%d\n", i);
}
সেরসত এোং যখন লুবপ অ্সেরত
এিাডাও েু বি breakএিিং continue িযিহার েরকে পার যখন লুপগুবল িালু হলব্:
37 | P a g e
কেি উিাহরণ
int i = 0;
while (i < 10) {
if (i == 4) {
break;
}
printf("%d\n", i);
i++;
}
উিাহরণ োসলব়ে যান
#include <stdio.h>
int main() {
int i = 0;
while (i < 10) {
if (i == 4) {
i++;
continue;
}
printf("%d\n", i);
i++;
}
return 0;
}
} output:: 0 1 2 3 4 5 6 7 8 9
C Arrays
38 | P a g e
অ্যাবর
অ্যাকরগুবল রবেটি িাকনর জনয পৃেে থভবরকযিল থর্াষণা েরার পবরিকেয এেটি এেে থভবরকযিকল
এোবধে িান সিংরেণ েরকে িযিহৃে হয।
এেটি অ্যাকর তেবর েরকে, থডটা টাইপ (কযিন ) সিংোবযে েরুন এিিং েগণ ািার েন্ধনী []int দ্বারা
অ্নুসরণ েরা অ্যাকরর নাি উকেখ ের।
এটিকে িান সবিকিশ্ েরকে, থোুঁেডা ধনুিযন্ধনীর বভেকর এেটি েিা দ্বারা পৃেে োবলো িযিহার ের:
int myNumbers[] = {25, 50, 75, 100};
আিরা এখন এেটি থভবরকযিল তেবর েকরবি থযখাকন িারটি পূণযসিংখযার অ্যাকর রকযকি।
এিটি অ্যাবরর উপািান অ্যাবক্সি
এেটি অ্যাকর উপাদান অ্যাকেস েরকে, এর িূেি নম্বর পড ।
অ্যাকর ইনকডে 0 বদকয শুরু হয : [0] রেি উপাদান। [1] বদ্বেীয উপাদান, ইেযাবদ
এই বিিৃবেটি িেম উপািান [0] এর িান অ্যাকেস েকর myNumbers:
উিাহরণ
#include <stdio.h>
int main() {
int myNumbers[] = {25, 50, 75, 100};
printf("%d", myNumbers[0]);
return 0;
} // Outputs 25
39 | P a g e
Change an Array Element
এেটি বনবদয ষ্ট উপাদাকনর িান পবরিেয ন েরকে, সূিে নম্বর পর:
উিাহরণ
myNumbers[0] = 33;
উিাহরণ
#include <stdio.h>
int main() {
int myNumbers[] = {25, 50, 75, 100};
myNumbers[0] = 33;
printf("%d", myNumbers[0]);
return 0;
}
// Now outputs 33 instead of 25
//output 33
Loop Through an Array
েু বি লুপ বদকয অ্যাকরর উপাদানগুবল লুপ েরকে পাকরা for ।
বনম্নবলবখে উদাহরণ myNumbers অ্যাকরর সিস্ত উপাদান আউটপুট বদকি
উিাহরণ
#include <stdio.h>
int main() {
int myNumbers[] = {25, 50, 75, 100};
int i;
40 | P a g e
for (i = 0; i < 4; i++) {
printf("%d\n", myNumbers[i]);
}
return 0;
}
Output:: 25
50
75
100
Set Array Size
অ্যাকর তেবর েরার আকরেটি সাধারণ উপায হল অ্যাকরর আোর বনবদয ষ্ট েরা এিিং পকর উপাদান থযাি
েরা:
উিাহরণ
#include <stdio.h>
int main() {
// Declare an array of four integers:
int myNumbers[4];
// Add elements to it
myNumbers[0] = 25;
myNumbers[1] = 50;
myNumbers[2] = 75;
myNumbers[3] = 100;
printf("%d\n", myNumbers[0]);
return 0;
41 | P a g e
}
//output:: 25
এই পদ্ধবে িযিহার েকর, কতামাবি অ্যাবরর আিার জানা উসেত, যাকে থরাগ্রািটি যকেষ্ট থিিবর সঞ্চয
েকর।
েু বি এেটা অ্যাকর তেবর েরার পকর অ্যাকরর আোর পবরিেয ন েরকে পারকিন না।
C Strings
সরাংি
পাঠয/অ্ের সিংরেকণর জনয বরিং িযিহার েরা হয।
উদাহরণস্বরূপ, "হযাকলা ওযার্ল্য" অ্েকরর এেটি বরিং।
অ্নযানয অ্কনে থরাগ্রাবিিং লযােুকযজ থেকে বভি, সহকজ বরিং থভবরকযিল তেবর েরার জনয বস-কে সরাং
টাইপ কনই। যাইকহাে, আপবন charটাইপ িযিহার েরকে পাকরন এিিং বস-কে এেটি বরিং তেবর েরকে
অ্েকরর এেটি অ্যাকর তেবর েরকে পাপ্িো:
char greetings[] = "Hello World!";
িকন রাখকি থয থোিাকে ডিল উদ্ধৃবে িযিহার েরকে হকি।
বরিং আউটপুট েরকে, েু বি printf()ফরিযাট থেবসফাযাকরর সাকে এেসাকে ফািংশ্নটি িযিহার েরকে
পারপ্ব্ %s বস থে জানাকে থয আিরা এখন বরিংগুবলর সাকে োজ েরবি:
উিাহরণ
#include <stdio.h>
int main() {
char greetings[] = "Hello World!";
printf("%s", greetings);
return 0;
42 | P a g e
}
output::Hello World!
Access Strings
থযকহেু বরিংগুবল আসকল বস-কে অ্যাকর, েু বি িিযাোর িন্ধনীর বভেকর োর সূিে নম্বর উকেখ েকর
এেটি বরিং অ্যাকেস েরকে পারকি []।
এই উদাহরণটি greetings এর রেি অ্ক্ষর (0) বরি েকর :
উিাহরণ
#include <stdio.h>
int main() {
char greetings[] = "Hello World!";
printf("%s", greetings);
return 0;
}
output::Hello World!
িকন রাখকি থয এেটি এিি অ্ক্ষর %c বরি েরকে আিাকদর বিনযাস বনবদয ষ্টেরণ িযিহার েরকে হকি ।
Modify Strings
এেটি বরিং এ এেটি বনবদয ষ্ট অ্েকরর িান পবরিেয ন েরকে, সূিে সিংখযা পডুন এিিং এিি
উদ্ধৃ সত িযিহার েরুন :
উিাহরণ
#include <stdio.h>
int main() {
43 | P a g e
char greetings[] = "Hello World!";
greetings[0] = 'J';
printf("%s", greetings);
return 0;
}
Output:://Jello World!
Another Way Of Creating Strings
উপকরর উদাহরণগুবলকে, আিরা এেটি বরিং থভবরকযিল তেবর েরকে এেটি "বরিং বলটারাল" িযিহার
েকরবি। এটি বস-কে এেটি বরিং তেবর েরার সিকিকয সহজ উপায।
থোিার আরও িকন রাখা উবিে থয েু বি অ্েকরর এেটি থসট বদকয এেটি বরিং তেবর েরকে
পারকি। এই উদাহরণটি এই পৃষ্ঠার শুরুকে উদাহরকণর িকো এেই ফলাফল থদকি:
উিাহরণ
#include <stdio.h>
int main() {
char greetings[] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l',
'd', '!', '\0'};
char greetings2[] = "Hello World!";
printf("%s\n", greetings);
printf("%s\n", greetings2);
return 0;
}
output::
Hello World!
Hello World!
কিন তু সম \0 কিবষ অ্ন্তেুণ ক্ত িরবে? এটি "নাল টাবিযকনটিিং অ্ের" বহসাকি পবরবিে, এিিং এই পদ্ধবে
িযিহার েকর বরিং তেবর েরার সিয অ্িশ্যই অ্ন্তভুয ক্ত েরকে হকি। এটা বস িকল থয এই বরিং থশ্ষ.
44 | P a g e
পােণ িয
বরিং তেবরর দুটি উপাকযর িকধয পােযেয হল থয রেি পদ্ধবেটি বলখকে সহজ, এিিং থোিাকে \0 অ্েরটি
অ্ন্তভুয ক্ত েরকে হকি না, োরণ C আপনার জনয এটি েরকি।
প্েো োি লেয েরা উবিে থয উভয অ্যাকরর আোর এেই: োকদর উভকযরই 13টি অ্ক্ষর রকযকি
(কেসও এেটি অ্ের বহসাকি িণনা েকর), \0অ্ের সহ:
উিাহরণ
#include <stdio.h>
int main() {
char greetings[] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '!', '\0'};
char greetings2[] = "Hello World!";
printf("%lu\n", sizeof(greetings));
printf("%lu\n", sizeof(greetings2));
return 0;
}
Output::13
13
C Special Characters
Strings - Special Characters
থযকহেু বরিংগুবল অ্িশ্যই উদ্ধৃবের িকধয বলখকে হকি, বস এই বরিংটিকে ভু ল িুঝকি এিিং এেটি ত্রুটি
তেবর েরকি:
char txt[] = "We are the so-called "Vikings" from the north.";
এই সিসযা এডাকনার সিাধান হল েযািস্ল্যাি এবেপ িযাবরক্টার িযিহার েরা ।
িযােস্ল্যাশ্ ( \) একস্কপ অ্ের বিকশ্ষ অ্েরকে বরিং অ্েকর পবরণে েকর:
45 | P a g e
Escape character
Result
Description
\'
'
Single quote
\"
"
Double quote
\\
\
Backslash
ক্রিটি \" এেটি বরিংকয এেটি ডিল উদ্ধৃবে সবিকিশ্ েরায:
উিাহরণ
#include <stdio.h>
int main() {
char txt[] = "We are the so-called \"Vikings\" from the north.";
printf("%s", txt);
return 0;
}
output::
We are the so-called "Vikings" from the north.
ক্রিটি \' এেটি বরিং এ এেটি এেে উদ্ধৃবে সবিকিশ্ েরায:
উিাহরণ
#include <stdio.h>
46 | P a g e
int main() {
char txt[] = "It\'s alright.";
printf("%s", txt);
return 0;
}
Output::
It's alright.
ক্রিটি \\ এেটি বরিংকয এেটি এেে িযােস্ল্যাশ্ সবিকিশ্ েরায:
উিাহরণ
#include <stdio.h>
int main() {
char txt[] = "The character \\ is called backslash.";
printf("%s", txt);
return 0;
}
output::The character \ is called backslash.
C-থে অ্নযানয জনবরয একস্কপ অ্ের হল:
Escape Character
Result
Try it
\n
New Line
Try it »
47 | P a g e
\t
Tab
Try it »
\0
Null
Try it »
C Strings
সরাংি
পাঠয/অ্ের সিংরেকণর জনয বরিং িযিহার েরা হয।
উদাহরণস্বরূপ, "HELLO WORLD " অ্েকরর এেটি বরিং।
অ্নযানয অ্কনে থরাগ্রাবিিং লযােুকযজ থেকে বভি, সহকজ বরিং থভবরকযিল তেবর েরার জনয বস-কে সরাং
টাইপ কনই। যাইকহাে, আপবন charটাইপ িযিহার েরকে পাকরন এিিং বস-কে এেটি বরিং তেবর েরকে
অ্েকরর এেটি অ্যাকর তেবর েরকে পার:
char greetings[] = "Hello World!";
িকন রাখকি থয থোিাকে ডিল উদ্ধৃবে িযিহার েরকে হকি।
বরিং আউটপুট েরকে, েু বি printf()ফরিযাট থেবসফাযাকরর সাকে এেসাকে ফািংশ্নটি িযিহার েরকে
পার %s বস থে জানাকে থয আিরা এখন বরিংগুবলর সাকে োজ েরবি:
উিাহরণ
char greetings[] = "Hello World!";
printf("%s", greetings);
48 | P a g e
Access Strings
থযকহেু বরিংগুবল আসকল বস-কে অ্যাকর, আপবন িিযাোর িন্ধনীর বভেকর োর সূিে নম্বর উকেখ েকর
এেটি বরিং অ্যাকেস েরকে পাকরন []।
এই উদাহরণটি greetings এি রেি অ্ক্ষর (0) বরি েকর :
উিাহরণ
char greetings[] = "Hello World!";
printf("%c", greetings[0]);
িকন রাখকি থয এেটি এিি অ্ক্ষর %c বরি েরকে আিাকদর বিনযাস বনবদয ষ্টেরণ িযিহার েরকে হকি ।
সরাং পসরেতণন িরুন
এেটি বরিং এ এেটি বনবদয ষ্ট অ্েকরর িান পবরিেয ন েরকে, সূিে সিংখযা পড এিিং এিি
উদ্ধৃ সত িযিহার ের :
উিাহরণ
char greetings[] = "Hello World!";
greetings[0] = 'J';
printf("%s", greetings);
// Outputs Jello World! instead of Hello World!
সরাং ততসরর আবরিটি উপা়ে
উপকরর উদাহরণগুবলকে, আিরা এেটি বরিং থভবরকযিল তেবর েরকে এেটি "বরিং বলটারাল" িযিহার
েকরবি। এটি বস-কে এেটি বরিং তেবর েরার সিকিকয সহজ উপায।
49 | P a g e
থোিার আরও িকন রাখা উবিে থয েু বি অ্েকরর এেটি থসট বদকয এেটি বরিং তেবর েরকে পার। এই
উদাহরণটি এই পৃষ্ঠার শুরুকে উদাহরকণর িকো এেই ফলাফল থদকি:
উিাহরণ
#include <stdio.h>
int main() {
char greetings[] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l',
'd', '!', '\0'};
char greetings2[] = "Hello World!";
printf("%lu\n", sizeof(greetings));
printf("%lu\n", sizeof(greetings2));
return 0;
}
Output::13
13
কিন
ত োমরো \0
কিবষ অ্ন্তেুণ ক্ত িরতে? এটি "নাল টাবিযকনটিিং অ্ের" বহসাকি পবরবিে, এিিং এই পদ্ধবে
িযিহার েকর বরিং তেবর েরার সিয অ্িশ্যই অ্ন্তভুয ক্ত েরকে হকি। এটা বস িকল থয এই বরিং থশ্ষ.
পােণ িয
বরিং তেবরর দুটি উপাকযর িকধয পােযেয হল থয রেি পদ্ধবেটি বলখকে সহজ, এিিং থোিাকে \0 অ্েরটি
অ্ন্তভুয ক্ত েরকে হকি না, োরণ C থোির
জনয এটি আকি থেকেই েকর রাখকি।
আপনার লেয েরা উবিে থয উভয অ্যাকরর আোর এেই: োকদর উভকযরই 13টি অ্ক্ষর রকযকি
(কেসও এেটি অ্ের বহসাকি িণনা েকর), \0 অ্ের সহ:
উিাহরণ
#include <stdio.h>
int main() {
char greetings[] = {'H', 'e', 'l', 'l', 'o', '
', 'W', 'o', 'r', 'l', 'd', '!', '\0'};
50 | P a g e
char greetings2[] = "Hello World!";
printf("%lu\n", sizeof(greetings));
printf("%lu\n", sizeof(greetings2));
// Outputs 13
// Outputs 13
return 0;
}
RECURSION
Recursion হল এেটি স্ব-অ্নুরূপ উপাকয আইকটি পুনরািৃবি েরার রবক্রযা। থরাগ্রাবিিং ভাষায, যবদ এেটি
থরাগ্রাি থোিাকে এেই ফািংশ্কনর বভেকর এেটি ফািংশ্ন েল েরার অ্নুিবে থদয, োহকল োকে ফািংশ্কনর
পুনরািৃবিিূলে িলা হয।
void recursion() {
recursion(); /* function calls itself */
}
int main() {
recursion();
}
বস থরাগ্রাবিিং লযােুকযজ বরোরশ্নকে সিেযন েকর, অ্েযাৎ, বনকজকে েল েরার জনয এেটি ফািংশ্ন। বেন্তু
পুনরািৃি িযিহার েরার সিয, থরাগ্রািারকদর ফািংশ্ন থেকে এেটি রিান অ্িিা সিংোবযে েরার জনয
সেেয ো অ্িলম্বন েরকে হকি, অ্নযোয এটি এেটি অ্সীি লুকপ যাকি।
বরোবসযভ ফািংশ্ন অ্কনে িাবণবেে সিসযা সিাধাকনর জনয খুিই উপকযািী, থযিন এেটি সিংখযার ফযাক্টবরযাল
িণনা েরা, বফকিানাবি বসবরজ তেবর েরা ইেযাবদ।
সিংখযা ফযাক্টবরযাল
বনম্নবলবখে উদাহরণটি এেটি পুনরািৃি ফািংশ্ন - িযিহার েকর এেটি রদি
সিংখযার ফযাক্টবরযাল িণনা েকর
উিাহরণ
#include <stdio.h>
51 | P a g e
unsigned long long int factorial(unsigned int i) {
if(i <= 1) {
return 1;
}
return i * factorial(i - 1);
}
int main() {
int i = 12;
printf("Factorial of %d is %d\n", i, factorial(i));
return 0;
}
যখন উপকরর থোডটি চোিু এিিং োযযের েরা হয, েখন এটি বনম্নবলবখে ফলাফল তেবর েকর Factorial of 12 is 479001600
বফকিানাবি বসবরজ
বনকির উদাহরণটি এেটি বরোরবসভ ফািংশ্ন –
িযিহার েকর এেটি রদি সিংখযার জনয বফকিানাবি বসবরজ তেবর েকর
#include <stdio.h>
int fibonacci(int i) {
if(i == 0) {
return 0;
}
if(i == 1) {
return 1;
}
return fibonacci(i-1) + fibonacci(i-2);
}
int main() {
int i;
52 | P a g e
for (i = 0; i < 10; i++) {
printf("%d\t\n", fibonacci(i));
}
return 0;
}
যখন উপকরর থোডটি রান
এিিং োযযের হয, েখন এটি বনকির িকো
ফলাফল
তেবর েকর -
0
1
1
2
3
5
8
13
21
34
C User Input
েু বি ইবেিকধয বশ্কখি থয C-থে মান আউটপুট printf() েরকে িযিহৃে হয ।
েযেহারিারীর ইনপুট থপকে , আপবন scanf() ফািংশ্নটি িযিহার েরকে পাকরন :
উদাহরণ
িযিহারোরীর দ্বারা রকিশ্ েরা এেটি সিংখযা আউটপুট:
#include <stdio.h>
int main() {
// Create an integer variable that will store the number we get from the user
int myNum;
// Ask the user to type a number
printf("Type a number and press enter: \n");
53 | P a g e
// Get and save the number the user types
scanf("%d", &myNum);
// Print the number the user typed
printf("Your number is: %d", myNum);
return 0;
}
Output::Type a number and press enter:
ফািংশ্ন দুটি scanf() আগুযকিি থনয: থভবরকযিকলর ফরিযাট থেবসফাযার ( %dউপকরর উদাহরকণ) এিিং
থরফাকরন্স অ্পাকরটর ( &myNum), যা থভবরকযিকলর থিিবর অ্যাকেস সিংরেণ েকর।
িযিহারোরীর ইনপুট বরিং
েু বি িযিহারোরীর দ্বারা রকিশ্ েরা এেটি বরিংও থপকে পার:
উদাহরণ
এেটি িযিহারোরীর নাি আউটপুট:
#include <stdio.h>
int main() {
// Create a string
char firstName[30];
// Ask the user to input some text
printf("Enter your first name: \n");
// Get and save the text
scanf("%s", firstName);
// Output the text
printf("Hello %s.", firstName);
return 0;
}
Output::Enter your first name and press enter:
54 | P a g e
িকন রাখকি থয থোিাকে অ্িশ্যই বরিং/অ্যাকরর আোর বনবদয ষ্ট েরকে হকি (আিরা এেটি খুি উচ্চ সিংখযা
িযিহার েকরবি, 30, বেন্তু অ্ন্তে োরপকর আিরা বনবিে থয এটি রেি নাকির জনয যকেষ্ট অ্ের সিংরেণ
েরকি), এিিং থোিাকে থরফাকরন্স অ্পাকরটর বনবদয ষ্ট েরকে হকি না ( &) যখন বরিং এর সাকে োজ
েকর scanf()।
C Memory Address
কমমসর ঠিিানা
যখন এেটি থভবরকযিল বস-কে তেবর েরা হয, েখন থভবরকযিকলর জনয এেটি থিিবর অ্যাকেস িরাে
েরা হয।
থিিবর অ্যাকেস হল থসই অ্িিান থযখাকন থভবরকযিলটি েবম্পউটাকর সিংরেণ েরা হয।
যখন আিরা থভবরকযিকলর এেটি িান িরাে েবর, েখন এটি এই থিিবর ঠিোনায সিংরবেে হয।
এটি অ্যাকেস েরকে, থরফাকরন্স অ্পাকরটর ( &) িযিহার েরুন এিিং ফলাফলটি উপিাপন েরকি থযখাকন
থভবরকযিলটি সিংরেণ েরা হকযকি:
উিাহরণ
int myAge = 43;
printf("%p", &myAge); // Outputs 0x7ffe5367e044
দ্রষ্টেয: থিিবর ঠিোনাটি থহোকডবসকিল আোকর (0x..)। আপবন সম্ভিে আপনার থরাগ্রাকি এেই
ফলাফল পাকিন না।
েু বি এটাও িকন রাখকি থয &myAge রাযই এেটি "পকযিার" িলা হয। এেটি পকযিার িূলে এেটি
থভবরকযিকলর থিিবর অ্যাকেস োর িান বহসাকি সিংরেণ েকর। পকযিার িান বরি েরকে,
আিরা %pবিনযাস বনবদয ষ্টেরণ িযিহার েবর।
েু বি পকরর অ্ধযাকয পকযিার সম্পকেয আরও অ্কনে বেিু বশ্খকিন ।
55 | P a g e
কিন কমমসর ঠিিানা অ্নাবির জানবত হবে?
সি-বত পব়েন্টারগুসল গুরুত্বপূণ,য োরণ োরা আপনাকে েবম্পউটাকরর থিিবরকে থডটা িযাবনপুকলট েরার
েিো থদয - এটি কিাড িমাবত এোং িমণ ক্ষমতা উন্নত িরবত পাবর ।
পকযিার হল এিন এেটি বজবনস যা C থে অ্নযানয থরাগ্রাবিিং লযােুকযজ থযিন পাইেন এিিং জাভা থেকে
আলাদা েকর থোকল ।
C Pointers
পব়েন্টার ততসর িরা
েু বি আকির অ্ধযায থেকে বশ্কখি থয আিরা থরফাকরন্স অ্পাকরটকরর সাকে এেটি থভবরকযিকলর কমমসর
ঠিিানা & থপকে পাবর :
উিাহরণ
#include <stdio.h>
int main() {
int myAge = 43;
printf("%d\n", myAge);
printf("%p\n", &myAge);
return 0;
} Output::43
0x7ffe5367e044
উপকরর উদাহরকণ, এেটি পব়েন্টার &myAge বহসাকিও পবরবিে ।
এেটি পব়েন্টার হল এেটি থভবরকযিল যা অ্নয থভবরকযিকলর থিিবর অ্যাকেস োর িান বহসাকি সিংরেণ
েকর।
এেটি পব়েন্টার কেসরব়েেল এিই ধরবণর কডটা টাইপ (থযিন int) বনকদয শ্ েকর এিিং * অ্পাকরটকরর
সাকে তেবর েরা হয। েু বি থয থভবরকযিকলর সাকে োজ েরকিা োর ঠিোনা পকযিাকর িরাে েরা
হকযকি:
56 | P a g e
উিাহরণ
#include <stdio.h>
int main() {
int myAge = 43;
// An int variable
int* ptr = &myAge; // A pointer variable, with the name ptr, that
stores the address of myAge
// Output the value of myAge (43)
printf("%d\n", myAge);
// Output the memory address of myAge (0x7ffe5367e044)
printf("%p\n", &myAge);
// Output the memory address of myAge with the pointer (0x7ffe5367e044)
printf("%p\n", ptr);
return 0;
}
Output:: 43
0x7ffe5367e044
0x7ffe5367e044
#উিাহরণ েযাখযা িরা হব়েবে
নাকির সাকে এেটি পকযিার থভবরকযিল তেবর েরুন ptr, যা এেটি থভবরকযিলকে সনবিণ ি
িবর int ( myAge)। লেয েরুন থয পকযিাকরর ধরনটি েু বি
থয থভবরকযিকলর সাকে োজ েরকিন
োর সাকে থিকল।
&থভবরকযিকলর থিিবর ঠিোনা সিংরেণ েরকে অ্পাকরটর িযিহার েরুন myAge, এিিং এটি পকযিাকর
িরাে ের।
এখন, এর থিিবর ঠিোনার ptr িান ধকর রাকখ myAge
57 | P a g e
সডবরফাবরন্স
উপকরর উদাহরকণ, আিরা এেটি থভবরকযিকলর থিিবর ঠিোনা থপকে পকযিার থভবরকযিল িযিহার
েকরবি ( & করফাবরন্স অ্পাকরটকরর সাকে এেসাকে িযিহার েরা হকযকি)।
*যাইকহাে, েু বি
অ্পাকরটর ( সডবরফাবরন্স অ্পাকরটর) িযিহার েকর পকযিার থয থভবরকযিলকে বনকদয শ্
েকর োর িানও থপকে পার :
উিাহরণ
#include <stdio.h>
int main() {
int myAge = 43;
// Variable declaration
int* ptr = &myAge;
// Pointer declaration
// Reference: Output the memory address of myAge with the pointer
(0x7ffe5367e044)
printf("%p\n", ptr);
// Dereference: Output the value of myAge with the pointer (43)
printf("%d\n", *ptr);
return 0;
}
output::0x7ffe5367e044
43
িকন রাখকিন থয *বিহ্নটি এখাকন বিভ্রাবন্তের হকে পাকর, োরণ এটি আিাকদর থোকড দুটি বভি বজবনস
েকর:
•
যখন থর্াষণায িযিহার েরা হয ( int* ptr), এটি এেটি পব়েন্টার কেসরব়েেল তেবর েকর
।
•
থর্াষণায িযিহৃে না হকল, এটি এেটি সডবরফাবরন্স অ্পাবরটর বহসাকি োজ েকর ।
কিন আমাবি পব়েন্টার িম্পবিণ সিখবত হবে?
58 | P a g e
পকযিার হল এিন এেটি বজবনস যা C থে অ্নযানয থরাগ্রাবিিং লযােুকযজ থযিন পাইেন এিিং জাভা থেকে
আলাদা েকর থোকল ।
এই অ্ধযাযটি পকযিারগুবলর এেটি সিংবেপ্ত ভূ বিো বিল। এগুবল বস-কে গুরুত্বপূণয, োরণ োরা আপনাকে
েবম্পউটাকরর থিিবরকে থডটা িযাবনপুকলট েরার েিো থদয - এটি থোড েিাকে এিিং েিযেিো
উিে েরকে পাকর। যাইবহাি , পকযিারগুবল অ্িশ্যই যত্ন সহোকর পবরিালনা েরা উবিে, োরণ এটি
অ্নযানয থিিবর ঠিোনাগুবলকে সিংরবেে থডটা েবে েরকে পাকর।
কজবন রাখা োবলা: পকযিার থভবরকযিল থর্াষণা েরার বেনটি উপায আকি, বেন্তু রেি উপাযটি
থিবশ্রভািই িযিহৃে হয:
int* myNum; // Most used
int *myNum;
int * myNum;
সি স্ট্রোকচোি (স্ট্রোকচোি)
C Structures (structs)
রােিার (রােিারও িলা হয) হল এোবধে সম্পবেয ে থভবরকযিলকে এে জাযিায থিাষ্ঠীিদ্ধ েরার
এেটি উপায। িাঠাবমার িসতটি পসরেতণনিীল িাঠাবমার িিিয বহসাকি পবরবিে ।
এেটি অ্যাকরর থেকে বভি , এেটি োঠাকিাকে অ্কনেগুবল বিবভি থডটা টাইপ োেকে পাকর (int, float,
char, ইেযাবদ)।
Create a Structure
েু বি েীওযাডয িযিহার েকর এেটি োঠাকিা তেবর েরকে পার struct এিিং এর রবেটি সদসযকে
থোুঁেডা িন্ধনীর িকধয বলখকে েরকে পার:
59 | P a g e
struct MyStructure {
// Structure declaration
int myNum;
// Member (int variable)
char myLetter;
// Member (char variable)
}; // End the structure with a semicolon
োঠাকিা অ্যাকেস েরকে, থোিাকে এটির এেটি পবরিেয নশ্ীল তেবর েরকে হকি।
structপদ্ধবের বভেকর েীওযাডযটি িযিহার ের main(), োরপকর োঠাকিার নাি এিিং োরপকর
োঠাকিা পবরিেয নশ্ীকলর নাি:
"s1" নাি বদকয এেটি struct থভবরকযিল তেবর ের:
struct myStructure {
int myNum;
char myLetter;
};
int main() {
struct myStructure s1;
return 0;
}
Access Structure Members
এেটি োঠাকিার সদসযকদর অ্যাকেস েরকে, ডট বসনটযাে িযিহার ের ( .):
উিাহরণ
#include <stdio.h>
// Create a structure called myStructure
struct myStructure {
int myNum;
char myLetter;
};
int main() {
60 | P a g e
// Create a structure variable of myStructure called s1
struct myStructure s1;
// Assign values to members of s1
s1.myNum = 13;
s1.myLetter = 'B';
// Print values
printf("My number: %d\n", s1.myNum);
printf("My letter: %c\n", s1.myLetter);
return 0;
}
Output::My number: 13
My letter: B
এখন েু বি শুধুিাে এেটি োঠাকিা িযিহার েকর বিবভি িান সহ এোবধে োঠাকিার থভবরকযিল তেবর
েরকে পারকি:
উিাহরণ
#include <stdio.h>
struct myStructure {
int myNum;
char myLetter;
};
int main() {
// Create different struct variables
struct myStructure s1;
struct myStructure s2;
// Assign values to different struct variables
61 | P a g e
s1.myNum = 13;
s1.myLetter = 'B';
s2.myNum = 20;
s2.myLetter = 'C';
// Print values
printf("s1 number: %d\n", s1.myNum);
printf("s1 letter: %c\n", s1.myLetter);
printf("s2 number: %d\n", s2.myNum);
printf("s2 letter: %c\n", s2.myLetter);
return 0;
}
output::s1 number: 13
s1 letter: B
s2 number: 20
s2 letter: C
িাঠাবমার মবধয সরাং িম্পবিণ সি?
িকন রাখকি থয বস-কে বরিংগুবল আসকল অ্েকরর এেটি অ্যাকর, এিিং দুভযািযিশ্ে, আপবন এইরেি এেটি
অ্যাকরকে এেটি িান বনধযারণ েরকে পারকি না:
উিাহরণ
#include <stdio.h>
struct myStructure {
int myNum;
char myLetter;
62 | P a g e
char myString[30];
// String
};
int main() {
struct myStructure s1;
// Trying to assign a value to the string
s1.myString = "Some text";
// Trying to print the value
printf("My string: %s", s1.myString);
return 0;
}
এেটি ত্রুটি র্টকি:
prog.c:12:15: error: assignment to expression with array type
যাইকহাে, এই জনয এেটি সিাধান আকি! েু বি strcpy() ফািংশ্নটি িযিহার েরকে পার এিিং িানটি
িরাে েরকে পার s1.myString, থযিন:
উিাহরণ
struct myStructure {
int myNum;
char myLetter;
char myString[30]; // String
};
int main() {
struct myStructure s1;
// Assign a value to the string using the strcpy function
strcpy(s1.myString, "Some text");
// Print the value
printf("My string: %s", s1.myString);
return 0;
}
ফলাফল:
63 | P a g e
My string: Some text
Simpler Syntax
আপবন এেটি এেে লাইকন থর্াষণার সিয োঠাকিা পবরিেয নশ্ীল সদসযকদর িান বনধযারণ েরকে
পাকরন।
থোুঁেডা ধনুিযন্ধনীর বভেকর এেটি েিা দ্বারা পৃেে েরা োবলোয িান সবিকিশ্ েরুন {}। িকন
রাখকিন থয আপনাকে strcpy()এই থেৌশ্লটির সাকে বরিং িানগুবলর জনয ফািংশ্নটি িযিহার েরকে
হকি না:
উিাহরণ
// Create a structure
struct myStructure {
int myNum;
char myLetter;
char myString[30];
};
int main() {
// Create a structure variable and assign values to it
struct myStructure s1 = {13, 'B', "Some text"};
// Print values
printf("%d %c %s", s1.myNum, s1.myLetter, s1.myString);
return 0;
}
দ্রষ্টেয: সবিকিবশ্ে িানগুবলর ক্রি অ্িশ্যই োঠাকিাকে থর্াবষে পবরিেয নশ্ীল রোকরর ক্রিগুবলর সাকে
থিকল (int এর জনয 13, char এর জনয 'B', ইেযাবদ)।
64 | P a g e
িসপ রািোর
আপবন এেটি োঠাকিা অ্নযকেও িরাে েরকে পাকরন।
বনম্নবলবখে উদাহরকণ, s1 এর িানগুবল s2 এ অ্নুবলবপ েরা হকযকি:
উিাহরণ
#include <stdio.h>
struct myStructure {
int myNum;
char myLetter;
char myString[30];
};
int main() {
// Create a structure variable and assign values to it
struct myStructure s1 = {13, 'B', "Some text"};
// Create another structure variable
struct myStructure s2;
// Copy s1 values to s2
s2 = s1;
// Print values
printf("%d %c %s", s2.myNum, s2.myLetter, s2.myString);
return 0;
}
65 | P a g e
Output:: 13 B Some text
Modify Values
েু বি যবদ এেটি িান পবরিেয ন/পবরিেয ন েরকে িাও, েুস
ডট বসনটযাে ( .) িযিহার েরকে পার।
এিিং এেটি বরিং িান পবরিেয ন েরকে, strcpy()ফািংশ্নটি আিার দরোরী:
উিাহরণ
#include <stdio.h>
#include <string.h>
// Create a structure
struct myStructure {
int myNum;
char myLetter;
char myString[30];
};
int main() {
// Create a structure variable and assign values to it
struct myStructure s1 = {13, 'B', "Some text"};
// Modify values
s1.myNum = 30;
s1.myLetter = 'C';
strcpy(s1.myString, "Something else");
66 | P a g e
// Print values
printf("%d %c %s", s1.myNum, s1.myLetter, s1.myString);
return 0;
}
Output::30 C Something else
িান পবরিেয ন েরা বিকশ্ষভাকি উপকযািী যখন আপবন িঠন িান অ্নুবলবপ েরুন:
উিাহরণ
#include <stdio.h>
#include <string.h>
struct myStructure {
int myNum;
char myLetter;
char myString[30];
};
int main() {
// Create a structure variable and assign values to it
struct myStructure s1 = {13, 'B', "Some text"};
// Create another structure variable
struct myStructure s2;
// Copy s1 values to s2
s2 = s1;
// Change s2 values
s2.myNum = 30;
s2.myLetter = 'C';
67 | P a g e
strcpy(s2.myString, "Something else");
// Print values
printf("%d %c %s\n", s1.myNum, s1.myLetter, s1.myString);
printf("%d %c %s\n", s2.myNum, s2.myLetter, s2.myString);
return 0;
}
Output::13 B Some text
30 C Something else
ঠিি আবে, তাই, সিোবে িাঠাবমা িরিারী?
েল্পনা ের থয আপনাকে িাবড সম্পকেয বিবভি েেয থযিন ব্র্যান্ড, িকডল এিিং িির সিংরেণ েরার
জনয এেটি থরাগ্রাি বলখকে হকি। রােিাকরর িযাপাকর থযটা িিৎোর ো হল আপবন এেটি এেে "োর
থটিকিট" তেবর েরকে পাকরন এিিং আপনার তেবর রবেটি িাবডর জনয এটি িযিহার েরকে
পাকরন। এেটি িাস্তি জীিকনর উদাহরণ জনয নীকি থদখুন.
োস্তে জীেবনর উিাহরণ
িাবড সম্পকেয বিবভি েেয সিংরেণ েরকে এেটি োঠাকিা িযিহার েকরা:
উিাহরণ
#include <stdio.h>
struct Car {
char brand[50];
char model[50];
int year;
};
int main() {
68 | P a g e
struct Car car1
= {"BMW", "X5", 1999};
struct Car car2
= {"Ford", "Mustang", 1969};
struct Car car3
= {"Toyota", "Corolla", 2011};
printf("%s %s %d\n", car1.brand, car1.model, car1.year);
printf("%s %s %d\n", car2.brand, car2.model, car2.year);
printf("%s %s %d\n", car3.brand, car3.model, car3.year);
return 0;
}
output::BMW X5 1999
Ford Mustang 1969
Toyota Corolla 2011
69 | P a g e
Download