>> 1 વક્તા: માતાનો એક કાર્યક્રમ લખીએ કે આ નામો માટે વપરાશકર્તા અને પૂછે છે
ત્રણ વિદ્યાર્થીઓને ઘરો.
હવે, તે નામો અને ઘરો સંગ્રહ કરવાની અમે શું, છ ચલો ઉપયોગ કરી શકે છે.
ત્રણ નામો માટે શબ્દમાળાઓ, અને અન્ય ઘરો માટે ત્રણ શબ્દમાળાઓ,
પરંતુ અમે પહેલાથી જ સાફ કરી શકો છો કે જે ખબર તેના બદલે એરે ઉપયોગ કરીને કે કોડ છે,
દાખલા તરીકે આ માટે 3 કદ ઝાકઝમાળ ત્રણ નામો, અને અન્ય એરે
ઘરો માટે માપ 3.
પરંતુ તે અમે આ સાફ કરી શકો છો તારણ વધુ તેમ છતાં, અને ખરેખર તે રાખવા
સાથે નામો અને ઘરો, કે જેથી એક વિદ્યાર્થી નામ અને તેના અથવા તેણીના ઘર
કોઈક જેથી માટે, સમાઇ છે એ જ ચલ હોય છે, વાત કરો.
>> આ કરવા માટે, જોકે, અમે જાહેર કરવાની જરૂર અમારી પોતાની માહિતી પ્રકાર, સી અમારી પોતાની પ્રકાર,
સી ના લેખકો જરૂરી ન હતી કે વર્ષો પહેલાં છે.
આ કરવા માટે અમે મુખ્ય શબ્દ ઉપયોગ કરી શકો છો typedef, આ સાથે
અન્ય ચાવીરૂપ શબ્દ સ્ટ્રક્ટ.
ચાલો એક નજર.
Structs.h અંદર, હું પહેલેથી જ કર્યું દ્વારા શરૂ મેળવેલ
CS50 પુસ્તકાલય સમાવેશ થાય છે.
હું આગળ, typedef સ્ટ્રક્ટ લખો જાઉં છું અને પછી એક સર્પાકાર તાણવું.
સ્ટ્રક્ટ અંદર, હું જાઉં છું એક વિદ્યાર્થી રહેશે કે સ્પષ્ટ કરવા માટે
નામ કહેવાય શબ્દમાળા, અને અન્ય શબ્દમાળા ઘર કહેવાય છે.
હું પછી મારું સર્પાકાર કૌંસ બંધ જાઉં છું, અને ઉલ્લેખ કરતા નું નામ
આ નવી માહિતી પ્રકાર વિદ્યાર્થી રહેશે.
અન્ય શબ્દોમાં, આ વાક્યરચના મારફતે મેં મારી પોતાની એક નવી માહિતી પ્રકાર જાહેર
કે એક ક્ષણ પહેલા અસ્તિત્વ ધરાવે છે, અને ન હતી આ માહિતી પ્રકાર ની અંદર બે માહિતી છે
ક્ષેત્રો અથવા માહિતી સભ્યો, નામ કહેવાય છે, એક કહેવાય ઘર, જે બંને
પ્રકાર શબ્દમાળા છે.
>> હવે આ પ્રકારના ઉપયોગ કરો એક વાસ્તવિક કાર્યક્રમ.
Structs0.c, હું એ જ રીતે મેળવેલ કર્યું મારી જાતને કેટલાક પહેલાથી જ શરૂ
boilerplate કોડ છે, અને હવે હું છું આ માહિતી ઉપયોગ જઈ
નીચે પ્રમાણે, વિદ્યાર્થી લખો.
હું પ્રથમ એક જાહેર જાઉં છું પ્રકાર વિદ્યાર્થી અરે, હું પડશે
એરે વિદ્યાર્થીઓ કૉલ -
બહુવચન -
અને હું તેના કદ હશે સ્પષ્ટ પડશે ની કિંમત છે, કે જે નોટિસ, ત્રણ,
સતત વિદ્યાર્થીઓ -
બધા પાટનગરો માં -
હું અહીં જાહેર કર્યું છે કે, પહેલાં ફાઇલમાં.
હવે તે ત્રણ પર ફરી વળવું દો વિદ્યાર્થીઓ, અને માટે વપરાશકર્તા પૂછવા
તેમના નામ અને ઘરો.
>> હું 0 વિચાર પૂર્ણાંક માટે, હું ઓછી છે કે સતત કરતાં, હું + +.
અને હવે આ શરીર ની અંદર લૂપ, હું કંઈક છાપે જાઉં છું
વિદ્યાર્થી નામ છે.
હું પછી ખરેખર વિચાર જાઉં છું કે સ્પષ્ટ કરીને વિદ્યાર્થી નામ
વિદ્યાર્થીઓ હું કૌંસ.
બીજા શબ્દોમાં કહીએ તો હું-i મી વિદ્યાર્થી માંગો છો હવે વિદ્યાર્થીઓ કહેવાય એરે, પરંતુ
હું કે હું મી વિદ્યાર્થી પર વિચાર કરવા માંગો છો નામ આપો, અને આ કરવા માટે, હું વાપરવા માટે જાઉં છું
પાંચ. ઓપરેટર, એક પર વિચાર કરવા માટે સ્ટ્રક્ટ ચોક્કસ ક્ષેત્ર અંદર.
તેથી હું વિદ્યાર્થીઓ હું. નામ કૌંસ સ્પષ્ટ GetString પરત કિંમત મળે છે ().
દરમિયાન, હું છાપે જાઉં છું જેવું, વિદ્યાર્થી કહે છે
ઘર, અને હવે હું સ્પષ્ટ કરવા માટે જઈ રહ્યો છું કે-i મી વિદ્યાર્થીઓ ઘર ક્ષેત્ર
પરત કિંમત મળશે GetString બીજા કૉલ ().
>> હવે આપણે આ ત્રણ સાથે કંઈક દો વિદ્યાર્થીઓના નામો અને ઘરો,
પ્રિન્ટીંગ સરળ કંઈક એક વાક્યમાં દરેક બહાર.
પૂર્ણાંક માટે હું 0, ફરીથી હું કરતાં ઓછી હોય કરો વિદ્યાર્થીઓ, હું + +, printf "% એ% s માં છે.
બેકસ્લેશ n એ ", અને હવે મને પ્લગ દો તે બે ક્ષેત્રોમાં આ મૂલ્યો,
વિદ્યાર્થીઓ, આઇ. નામ, અલ્પવિરામ કૌંસ વિદ્યાર્થીઓ હું કૌંસ. ઘર, બંધ કરો
કૌંસ, અર્ધવિરામ.
>> અને હવે હું એક વધુ વસ્તુ કરવાની જરૂર છે.
આ ફાઈલની તળિયે, હું જરૂર ફાળવવામાં આવી હતી કે મેમરી મુક્ત
GetSring () દ્વારા પડદા પાછળ જે અલબત્ત માટે, malloc કહે
શબ્દમાળાઓ માટે મેમરીને ફાળવવા વપરાશકર્તા પ્રકારો.
પરંતુ આ માટે સરળ છે.
હું 0 વિચાર પૂર્ણાંક માટે, હું કરતાં ઓછી હોય વિદ્યાર્થીઓ, હું + +, અને શરીર ની અંદર
આ લૂપ માટે, હું માત્ર જાઉં છું મફત વિદ્યાર્થીઓ કૌંસ હું. નામ પૂરી પાડે છે
અને મફત વિદ્યાર્થીઓ હું કૌંસ. ઘર.
>> હવે, અમે સ્પષ્ટ રીતે આંટીઓ માટે ત્રણ ઉપયોગ કર્યો છે આ કાર્યક્રમ માં, જ્યારે ખરેખર હું
માત્ર એક વપરાય છે, પરંતુ આ છે હોઈ શકે છે માત્ર પ્રદર્શન કાજે, કે જેથી
અમે ત્રણ અલગ માં સ્પષ્ટ કરી શકો છો અમે કરી રહ્યા છીએ બરાબર શું જાય છે.
અમે પ્રથમ નામ અને એક ઘર મળી રહ્યાં વિદ્યાર્થીઓના દરેક માટે, પછી અમે છો
માટે નામ અને ઘર બહાર છાપવા ત્રણ વિદ્યાર્થીઓને દરેક, અને
પછી અમે મેમરી મુક્ત રહ્યા છીએ વિદ્યાર્થીઓના દરેક દ્વારા ઉપયોગ થાય છે.
પરંતુ એ માટે આપણે ભેગા કરેલા શકે લૂપ માટે એક મોટી માં.
>> સંકલન, ચાલો હવે સંગ્રહ કરીએ, અને આ કાર્યક્રમ ચલાવો.
બનાવવા સ્ટ્ર્ક્ટ્સ 0. / સ્ટ્ર્ક્ટ્સ 0, વિદ્યાર્થી નામ આપો, ડેવિડ પૂરી દો, તે રહેવા પડશે
માથેર હાઉસ, વિદ્યાર્થી નામ, ચાલો લોરેન કહે છે, તે Leverett રહે પડશે
ઘર, વિદ્યાર્થી નામ, રોબ, તે પડશે કિર્કલૅંડ હાઉસ રહે છે.
અને ખરેખર, ડેવિડ, માથેર છે લોરેન, Leverett છે
અને રોબ કિર્કલૅંડ છે.