C Primer Plus ,6th edition::9780133432381 (2025)

Table of Contents
Access details Features References

American English

C Primer Plus ,6th edition::9780133432381 (1)

Access educator resources

Published by Addison-Wesley Professional (November 25, 2013) &copy 2014

Stephen Prata

  • Clear guidance about when and why to use different parts of the language

  • Hands-on learning with concise and simple examples that develop your understanding of a concept or two at a time

  • Hundreds of practical sample programs

  • Review questions and programming exercises at the end of each chapter to test your understanding

  • Coverage of generic C to give you the greatest flexibility

  • \",\"tags\":[],\"warranty\":\"\",\"price\":{\"with_tax\":{\"formatted\":\"€27,99\",\"value\":27.99,\"currency\":\"EUR\"},\"tax_label\":\"VAT\"},\"detail_messages\":\"\",\"availability\":\"\",\"page_title\":\"C Primer Plus\",\"cart_url\":\"https://eu.pearson.com/cart.php\",\"max_purchase_quantity\":0,\"mpn\":null,\"upc\":null,\"options\":[],\"related_products\":[{\"id\":3696,\"sku\":\"9780132781176\",\"name\":\"C++ Primer Plus ,6th edition::9780132781176\",\"url\":\"https://eu.pearson.com/c-plus-plus-primer-plus/9780132781176\",\"availability\":\"\",\"rating\":null,\"brand\":null,\"category\":[\"Shop All\",\"Shop All/Computer Science\",\"Shop All/Computer Science/Programming - Introductory\",\"Shop All/Computer Science/Programming - Introductory/C++\"],\"summary\":\" C++ Primer Plus, Sixth Edition New C++11 Coverage C++ Primer Plus is a carefully crafted, complete tutorial on one of the most significant and widely used programming languages today. An accessible...\",\"image\":{\"data\":\"https://cdn11.bigcommerce.com/s-venoj14f0m/images/stencil/{:size}/products/3696/1065/A100061111896_Lrg__29554.1733794832.jpg?c=1\",\"alt\":\"C++ Primer Plus ,6th edition::9780132781176\"},\"images\":[{\"data\":\"https://cdn11.bigcommerce.com/s-venoj14f0m/images/stencil/{:size}/products/3696/1065/A100061111896_Lrg__29554.1733794832.jpg?c=1\",\"alt\":\"C++ Primer Plus ,6th edition::9780132781176\"}],\"date_added\":\"24/ 05/ 2024\",\"pre_order\":false,\"show_cart_action\":false,\"has_options\":false,\"stock_level\":null,\"low_stock_level\":null,\"qty_in_cart\":0,\"custom_fields\":[{\"id\":16345,\"name\":\"BcType\",\"value\":\"Product\"},{\"id\":16348,\"name\":\"authors\",\"value\":\"Stephen Prata\"},{\"id\":16350,\"name\":\"ecomProductType\",\"value\":\"Vitalsource\"},{\"id\":16352,\"name\":\"duration\",\"value\":\"Lifetime\"},{\"id\":16354,\"name\":\"publicationDate\",\"value\":\"2011-10-18\"},{\"id\":16357,\"name\":\"publishedBy\",\"value\":\"Addison-Wesley Professional\"},{\"id\":16358,\"name\":\"language\",\"value\":\"EA\"},{\"id\":16360,\"name\":\"edition\",\"value\":\"6\"},{\"id\":16361,\"name\":\"copyright\",\"value\":\"2012\"},{\"id\":16362,\"name\":\"skuType\",\"value\":\"ISBN\"},{\"id\":16363,\"name\":\"programPPID\",\"value\":\"P200000000547\"}],\"num_reviews\":null,\"weight\":{\"formatted\":\"0,00 KGS\",\"value\":0.001},\"demo\":false,\"price\":{\"with_tax\":{\"currency\":\"EUR\",\"formatted\":\"€27,99\",\"value\":27.99},\"tax_label\":\"VAT\"}},{\"id\":453,\"sku\":\"P200000000546\",\"name\":\"C Primer Plus::P200000000546\",\"url\":\"https://eu.pearson.com/programs/P200000000546\",\"availability\":\"\",\"rating\":null,\"brand\":null,\"category\":[],\"summary\":\"\",\"image\":null,\"images\":[],\"date_added\":\"24/ 05/ 2024\",\"pre_order\":false,\"show_cart_action\":false,\"has_options\":false,\"stock_level\":null,\"low_stock_level\":null,\"qty_in_cart\":0,\"custom_fields\":[{\"id\":1024,\"name\":\"BcType\",\"value\":\"Program\"},{\"id\":1025,\"name\":\"ChildSKU\",\"value\":\"9780133432381\"},{\"id\":1026,\"name\":\"skuType\",\"value\":\"PPID\"}],\"num_reviews\":null,\"weight\":{\"formatted\":\"0,00 KGS\",\"value\":0},\"demo\":false,\"price\":{\"with_tax\":{\"currency\":\"EUR\",\"formatted\":\"€0,00\",\"value\":0},\"tax_label\":\"VAT\"}},{\"id\":455,\"sku\":\"P200000000547\",\"name\":\"C++ Primer Plus::P200000000547\",\"url\":\"https://eu.pearson.com/programs/P200000000547\",\"availability\":\"\",\"rating\":null,\"brand\":null,\"category\":[],\"summary\":\"\",\"image\":null,\"images\":[],\"date_added\":\"24/ 05/ 2024\",\"pre_order\":false,\"show_cart_action\":false,\"has_options\":false,\"stock_level\":null,\"low_stock_level\":null,\"qty_in_cart\":0,\"custom_fields\":[{\"id\":1030,\"name\":\"BcType\",\"value\":\"Program\"},{\"id\":1031,\"name\":\"ChildSKU\",\"value\":\"9780132781176\"},{\"id\":1032,\"name\":\"skuType\",\"value\":\"PPID\"}],\"num_reviews\":null,\"weight\":{\"formatted\":\"0,00 KGS\",\"value\":0},\"demo\":false,\"price\":{\"with_tax\":{\"currency\":\"EUR\",\"formatted\":\"€0,00\",\"value\":0},\"tax_label\":\"VAT\"}},{\"id\":3790,\"sku\":\"9780133053036\",\"name\":\"C++ Primer ,5th edition::9780133053036\",\"url\":\"https://eu.pearson.com/c-plus-plus-primer/9780133053036\",\"availability\":\"\",\"rating\":null,\"brand\":null,\"category\":[\"Shop All\",\"Shop All/Computer Science\",\"Shop All/Computer Science/Programming - Intermediate/Advanced\",\"Shop All/Computer Science/Programming - Intermediate/Advanced/C++ Data Structures\"],\"summary\":\"Bestselling Programming Tutorial and Reference Completely Rewritten for the New C++11 Standard Fully updated and recast for the newly released C++11 standard, this authoritative and...\",\"image\":{\"data\":\"https://cdn11.bigcommerce.com/s-venoj14f0m/images/stencil/{:size}/products/3790/1159/0133053032__43170.1733794543.jpg?c=1\",\"alt\":\"C++ Primer ,5th edition::9780133053036\"},\"images\":[{\"data\":\"https://cdn11.bigcommerce.com/s-venoj14f0m/images/stencil/{:size}/products/3790/1159/0133053032__43170.1733794543.jpg?c=1\",\"alt\":\"C++ Primer ,5th edition::9780133053036\"}],\"date_added\":\"24/ 05/ 2024\",\"pre_order\":false,\"show_cart_action\":false,\"has_options\":false,\"stock_level\":null,\"low_stock_level\":null,\"qty_in_cart\":0,\"custom_fields\":[{\"id\":17387,\"name\":\"BcType\",\"value\":\"Product\"},{\"id\":17388,\"name\":\"authors\",\"value\":\"Stanley Lippman , Josée Lajoie , Barbara Moo\"},{\"id\":17389,\"name\":\"ecomProductType\",\"value\":\"Vitalsource\"},{\"id\":17390,\"name\":\"duration\",\"value\":\"Lifetime\"},{\"id\":17391,\"name\":\"publicationDate\",\"value\":\"2012-08-06\"},{\"id\":17392,\"name\":\"publishedBy\",\"value\":\"Addison-Wesley Professional\"},{\"id\":17393,\"name\":\"language\",\"value\":\"EN\"},{\"id\":17394,\"name\":\"edition\",\"value\":\"5\"},{\"id\":17395,\"name\":\"copyright\",\"value\":\"2013\"},{\"id\":17396,\"name\":\"skuType\",\"value\":\"ISBN\"},{\"id\":17397,\"name\":\"programPPID\",\"value\":\"P200000000436\"}],\"num_reviews\":null,\"weight\":{\"formatted\":\"0,00 KGS\",\"value\":0.001},\"demo\":false,\"price\":{\"with_tax\":{\"currency\":\"EUR\",\"formatted\":\"€27,99\",\"value\":27.99},\"tax_label\":\"VAT\"}},{\"id\":3031,\"sku\":\"9781292098609\",\"name\":\"Absolute C++, Global Edition ,6th edition::9781292098609\",\"url\":\"https://eu.pearson.com/absolute-c-plus-plus-global-edition/9781292098609\",\"availability\":\"\",\"rating\":null,\"brand\":null,\"category\":[\"Shop All\",\"Shop All/Computer Science\",\"Shop All/Computer Science/Programming - Introductory\",\"Shop All/Computer Science/Programming - Introductory/C++\"],\"summary\":\"For courses in computer programming for business and engineering. Introduction and Advancement in C++ ProgrammingAbsolute C++ is a comprehensive introduction to the C++ programming language. The text...\",\"image\":{\"data\":\"https://cdn11.bigcommerce.com/s-venoj14f0m/images/stencil/{:size}/products/3031/409/A100060876483_Lrg__61881.1733793919.jpg?c=1\",\"alt\":\"Absolute C++, Global Edition ,6th edition::9781292098609\"},\"images\":[{\"data\":\"https://cdn11.bigcommerce.com/s-venoj14f0m/images/stencil/{:size}/products/3031/409/A100060876483_Lrg__61881.1733793919.jpg?c=1\",\"alt\":\"Absolute C++, Global Edition ,6th edition::9781292098609\"}],\"date_added\":\"24/ 05/ 2024\",\"pre_order\":false,\"show_cart_action\":false,\"has_options\":false,\"stock_level\":null,\"low_stock_level\":null,\"qty_in_cart\":0,\"custom_fields\":[{\"id\":9032,\"name\":\"BcType\",\"value\":\"Product\"},{\"id\":9034,\"name\":\"authors\",\"value\":\"Walter Savitch , Kenrick Mock\"},{\"id\":9036,\"name\":\"ecomProductType\",\"value\":\"Vitalsource\"},{\"id\":9038,\"name\":\"duration\",\"value\":\"Lifetime\"},{\"id\":9040,\"name\":\"publicationDate\",\"value\":\"2016-05-10\"},{\"id\":9042,\"name\":\"publishedBy\",\"value\":\"Pearson\"},{\"id\":9044,\"name\":\"language\",\"value\":\"EN\"},{\"id\":9045,\"name\":\"edition\",\"value\":\"6\"},{\"id\":9046,\"name\":\"copyright\",\"value\":\"2016\"},{\"id\":9047,\"name\":\"skuType\",\"value\":\"ISBN\"},{\"id\":9048,\"name\":\"programPPID\",\"value\":\"P200000005361\"}],\"num_reviews\":null,\"weight\":{\"formatted\":\"0,00 KGS\",\"value\":0},\"demo\":false,\"price\":{\"with_tax\":{\"currency\":\"EUR\",\"formatted\":\"€49,99\",\"value\":49.99},\"tax_label\":\"VAT\"}}],\"shipping_messages\":[],\"rating\":0,\"reviews\":{\"messages\":[],\"captcha\":\"6LdWf8gSAAAAAI83aRectJhbwidegZKk8PzWBltH\",\"total\":0,\"show_review_email\":true,\"recaptcha\":{\"enabled\":1,\"public_key\":\"6LdWf8gSAAAAAI83aRectJhbwidegZKk8PzWBltH\",\"markup\":\"
    \"}},\"bulk_discount_rates\":[],\"meta_keywords\":\"\",\"show_quantity_input\":1,\"title\":\"C Primer Plus ,6th edition::9780133432381\",\"gift_wrapping_available\":false,\"min_purchase_quantity\":0,\"customizations\":[],\"images\":[{\"data\":\"https://cdn11.bigcommerce.com/s-venoj14f0m/images/stencil/{:size}/products/3810/1178/0133432386__60836.1733794059.jpg?c=1\",\"alt\":\"C Primer Plus ,6th edition::9780133432381\"}]},\"token\":\"eyJ0eXAiOiJKV1QiLCJhbGciOiJFUzI1NiJ9.eyJjaWQiOlsxXSwiY29ycyI6WyJodHRwczovL2V1LnBlYXJzb24uY29tIl0sImVhdCI6MTczNzk1ODczNiwiaWF0IjoxNzM3Nzg1OTM2LCJpc3MiOiJCQyIsInNpZCI6MTAwMzEwNzQ4OCwic3ViIjoiQkMiLCJzdWJfdHlwZSI6MCwidG9rZW5fdHlwZSI6MX0.DRWnTfyQvg9qUB4sy7vYSuXpcxcozvGf6fSDcJxY-REL4NIhvjqSwsLQCUoNl4k7fC99q5QAD4Yw_LgIcHMZHg\",\"productTitle\":\"C Primer Plus ,6th edition::9780133432381\",\"productPrice\":{\"with_tax\":{\"formatted\":\"€27,99\",\"value\":27.99,\"currency\":\"EUR\"},\"tax_label\":\"VAT\"},\"isShowAccessInfoForTabs\":true,\"defaultImageURL\":\"https://cdn11.bigcommerce.com/s-venoj14f0m/stencil/90386640-9a81-013d-dfd3-36c5b9d257b8/img/ProductDefault.jpeg\",\"consolidationOfVitalSourceEtext\":true,\"programPPID\":\"P200000000546\",\"ecomProductType\":\"Vitalsource\",\"bcType\":\"Product\",\"showSwatchNames\":true,\"productSku\":\"9780133432381\",\"cartItems\":[]}"); const { bcType, programPPID, token, childSKU, ecomProductType, productId, productTitle, productPrice, cartItems, isShowAccessInfoForTabs, consolidationOfVitalSourceEtext, defaultImageURL } = jsContext const store = "nordics" const isIndiaStore = store === 'india' const productSKU = '9780133432381' const PPIDS = (programPPID || childSKU || "").split(","); const $tabs = document.querySelector(".product-tabs"); const $programTitle = document.querySelector('.productView-title') const $addToCart = document.getElementById('form-action-addToCart'); function renderTabWithoutProgram() { $programTitle.innerText = productTitle.includes('::') ? productTitle.split('::')[0] : productTitle const $tab = document.createElement('li') $tab.classList.add('is-active'); const $link = document.createElement('a') const $content = document.createElement('span') const $typeLabel = document.createElement('p') $typeLabel.classList.add('ecomProduct'); $typeLabel.textContent = ecomProductType === 'Vitalsource' ? (consolidationOfVitalSourceEtext ? 'eTextbook' : 'VitalSource') : ecomProductType; const $priceLabel = document.createElement('p') $priceLabel.classList.add('ecomProduct-price'); $priceLabel.textContent = productPrice.with_tax.formatted; $content.appendChild($typeLabel); $content.appendChild($priceLabel); $link.appendChild($content); $tab.appendChild($link); $tabs.appendChild($tab); } if (!programPPID) renderTabWithoutProgram() const graphqlEndpoint = `/graphql`; const query = ` query FindProductBySku($sku: String!) { site { product(sku: $sku) { entityId name sku path description defaultImage { urlOriginal } customFields { edges { node { name value } } } prices(includeTax: true) { price { value formatted currencyCode } basePrice { value formatted } salePrice { value formatted } } } } } `; let products = []; const langabbr = { "AZ": "Azerbaijani", "BA": "Bashkir", "EU": "Basque", "BE": "Belarusian", "BN": "Bengali", "AR": "Arabic", "HY": "Armenian", "AS": "Assamese", "AY": "Aymara", "DZ": "Bhutani", "BH": "Bihari languages", "BI": "Bislama", "BS": "Bosnian", "BR": "Breton", "EB": "British English", "BG": "Bulgarian", "MY": "Burmese", "CA": "Catalan or Valencian", "CM": "Chinese Simplified", "CT": "Chinese Traditional", "CO": "Corsican", "HR": "Croatian", "CS": "Czech", "DA": "Danish", "DR": "Dari", "NL": "Dutch or Flemish", "ET": "Estonian", "FI": "Finnish", "FR": "French", "GL": "Galician", "KA": "Georgian", "DE": "German", "EL": "Greek, Modern (1453-)", "GN": "Guarani", "GU": "Gujarati", "HA": "Hausa", "HE": "Hebrew", "HI": "Hindi", "HU": "Hungarian", "IS": "Icelandic", "ID": "Indonesian", "IU": "Inuktitut", "GA": "Irish", "IT": "Italian", "JA": "Japanese", "JW": "Javanese", "KN": "Kannada", "KS": "Kashmiri", "KK": "Kazakh", "RW": "Kinyarwanda", "KO": "Korean", "KU": "Kurdish", "LA": "Latin", "LN": "Lingala", "LT": "Lithuanian", "MK": "Macedonian", "MG": "Malagasy", "MS": "Malay", "ML": "Malayalam", "MT": "Maltese", "MI": "Maori", "MR": "Marathi", "MN": "Mongolian", "NE": "Nepali", "NO": "Norwegian", "OR": "Oriya", "FA": "Persian (Farsi)", "PL": "Polish", "PT": "Portuguese", "QU": "Quechua", "RU": "Russian", "SM": "Samoan", "SA": "Sanskrit", "SR": "Serbian", "SN": "Shona", "SD": "Sindhi", "SK": "Slovak", "SL": "Slovenian", "SO": "Somali", "ES": "Spanish or Castilian", "SU": "Sundanese", "SW": "Swahili", "SV": "Swedish", "TL": "Tagalog", "TG": "Tajik", "TA": "Tamil", "TT": "Tatar", "TE": "Telugu", "TH": "Thai", "BO": "Tibetan", "TI": "Tigrinya", "TS": "Tsonga", "TR": "Turkish", "TK": "Turkmen", "TW": "Twi", "UK": "Ukrainian", "UR": "Urdu", "UZ": "Uzbek", "VI": "Vietnamese", "CY": "Welsh", "WO": "Wolof", "XH": "Xhosa", "YI": "Yiddish", "YO": "Yoruba", "ZU": "Zulu", "FJ": "Fijian", "FO": "Faroese", "FY": "Western Frisian", "GD": "Gaelic or Scottish Gaelic", "GV": "Manx", "IA": "Interlingua", "IE": "Interlingue; Occidental", "IK": "Inupiak", "KL": "Kalaallisut; Greenlandic", "KM": "Laothian", "KY": "Kirghiz; Kyrgyz", "LO": "Lao", "LV": "Latvian", "RO": "Romanian or Moldavian or Moldovan", "NA": "Nauru", "OC": "Occitan", "OM": "Oromo", "PA": "Panjabi or Punjabi", "PS": "Pushto; Pashto", "RM": "Romansh", "RN": "Rundi", "SG": "Sango", "SH": "Serbo-Croatian", "SI": "Sinhala; Sinhalese", "SS": "Swati", "ST": "Sotho, Southern", "TN": "Tswana", "TO": "Tonga", "UG": "Uighur; Uyghur", "VO": "Volapuk", "N/A": "Not Applicable", "TBD": "To Be Determined", "AB": "Abkhazian", "AA": "Afar", "AF": "Afrikaans", "SQ": "Albanian", "EA": "American English", "AM": "Amharic", "EN": "English", "SE": "Northern Sami", "OJ": "Ojibwa", "OS": "Ossetian; Ossetic", "PI": "Pali", "SC": "Sardinian", "II": "Sichuan Yi; Nuosu", "TY": "Tahitian", "VE": "Venda", "WA": "Walloon", "ZA": "Zhuang; Chuang", "AK": "Akan", "AN": "Aragonese", "AV": "Avaric", "AE": "Avestan", "BM": "Bambara", "NB": "Bokmål, Norwegian; Norwegian Bokmål", "CH": "Chamorro", "CE": "Chechen", "NY": "Chichewa; Chewa; Nyanja", "CU": "Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic", "CV": "Chuvash", "KW": "Cornish", "CR": "Cree", "DV": "Divehi; Dhivehi; Maldivian", "EE": "Ewe", "FF": "Fulah", "IG": "Ganda", "HT": "Haitian; Haitian Creole", "HZ": "Herero", "HO": "Hiri Motu", "IO": "Ido", "KR": "Kanuri", "KI": "Kikuyu; Gikuyu", "KV": "Komi", "KG": "Kongo", "KJ": "Kuanyama; Kwanyama", "LI": "Limburgan; Limburger; Limburgish", "LU": "Luba-Katanga", "LB": "Luxembourgish; Letzeburgesch", "MH": "Marshallese", "NV": "Navajo; Navaho", "ND": "Ndebele, North", "NR": "Ndebele, South", "NG": "Ndonga", "ZH": "Chinese", "TLEMC": "Trilingual Eng-Malay-Chinese", "BLCE": "Bilingual Chinese-English" } async function getProductBySKUs(PPIDS) { for (const programPPID of PPIDS) { const requestOptions = { method: "POST", credentials: "same-origin", headers: { "Content-Type": "application/json", Authorization: "Bearer " + token, }, body: JSON.stringify({ query: query, variables: { sku: programPPID }, }), }; try { const response = await fetch(graphqlEndpoint, requestOptions); const data = await response.json(); const product = data?.data?.site?.product; const childSKU = product?.customFields?.edges.find( (el) => el?.node?.name === "ChildSKU" )?.node?.value; const hasNoProductSKU = childSKU && !childSKU.split(',').includes(productSKU); if (hasNoProductSKU) return renderTabWithoutProgram(); if (childSKU) { $programTitle.innerText = product.name.includes('::') ? product.name.split('::')[0] : product.name getProductBySKUs(childSKU.split(",")); break; } if(product) { products = [...products, product]; } } catch (error) {} } renderTabs(); return products; } getProductBySKUs(PPIDS); const countryUrlSegment = "c-primer-plus" const countrySuffixs = "" const $productViewType = document.getElementById("productViewType") function renderExtraInfoSpecificEachTab(ecomProductType) { const productTypeDetails = [ { type: 'Vitalsource', access: ['Instant access once purchased', 'Fulfilled by VitalSource'], features: ['Add notes and highlights', 'Search by keyword or page'] }, { type: 'eTextbook', access: ['Instant access fulfilled by Pearson', 'Offline and online access via mobile app', 'NB does NOT include access to MyLab/Mastering'], features: ['Add notes and highlights', 'Search by keyword or page', 'Stay organised with all your Pearson eTextbooks in one place'] }, { type: 'Mastering', access: ["Register via our Mastering page to complete your purchase", "A Course ID link or VLE link from your instructor is required", "Access length varies and depends on the duration of your instructor's course"], features: ['Help when and where you need it', 'Personalised practice and guidance', 'Instant feedback on assignments', 'Interactive Apps and study tools'] }, { type: 'MyLab', access: ["Register via our MyLab page to complete your purchase", "A Course ID link or VLE link from your instructor is required", "Access length varies and depends on the duration of your instructor's course"], features: ['Interactive digital learning experience', 'Includes eTextbook, Apps and study tools', 'Instant feedback on assignments', 'Help when and where you need it'] }, { type: 'Revel', access: ["Register via our Revel page to complete your purchase", "A Course ID link or VLE link from your instructor is required", "Access length varies and depends on the duration of your instructor's course"], features: ['More than a digital textbook', 'Multimedia content and practice integrated', 'Immediate feedback on tests and quizzes', 'Highlighting, notetaking and study tips', 'Anytime, anywhere learning'] }, ] try { const productViewTypeCurrentInfo = productTypeDetails.find(i => i.type === ecomProductType) if (productViewTypeCurrentInfo) { const accessHTML = productViewTypeCurrentInfo.access.map(i => `
  • ${i}
  • `).join(''); const featuresHTML = productViewTypeCurrentInfo.features.map(i => `
  • ${i}
  • `).join(''); const infoHTML = `

    Access details

      ${accessHTML}

    Features

      ${featuresHTML}
    `; productViewType.innerHTML += infoHTML; } else { console.error('Product type details not found:', ecomProductType); } } catch (err) { console.log(err) } } function renderTabs() { const productsByType = {} products.forEach(product => { const type = product.customFields.edges.find( (el) => el.node.name === "ecomProductType" )?.node?.value; if (!type) { return } const alreadyIdentifiedProducts = productsByType.hasOwnProperty(type) ? productsByType[type] : [] productsByType[type] = [...alreadyIdentifiedProducts, product] }) const noBothEtextVitalsource = !(productsByType.hasOwnProperty('Vitalsource') && productsByType.hasOwnProperty('eTextbook')) if (!noBothEtextVitalsource && consolidationOfVitalSourceEtext) { const eTextbookProducts = productsByType['eTextbook'] || []; const vitalsourceProducts = productsByType['Vitalsource'] || []; const mergedProducts = [...eTextbookProducts, ...vitalsourceProducts]; if (ecomProductType === 'Vitalsource') { productsByType['Vitalsource'] = mergedProducts; delete productsByType['eTextbook']; } else { productsByType['eTextbook'] = mergedProducts; delete productsByType['Vitalsource']; } } Object.entries(productsByType).forEach(([type, products]) => { const $tab = document.createElement('li') if (type === ecomProductType) { $tab.classList.add('is-active'); } const $link = document.createElement('a') $link.href = countrySuffixs.includes(countryUrlSegment) ? '/' + countryUrlSegment + products[0].path : products[0].path; const $content = document.createElement('span') const $typeLabel = document.createElement('p') $typeLabel.classList.add('ecomProduct'); if (consolidationOfVitalSourceEtext) { $typeLabel.textContent = type === 'Vitalsource' ? 'eTextbook' : type } else { $typeLabel.textContent = type } const $priceLabel = document.createElement('p') $priceLabel.classList.add('ecomProduct-price'); if (products.length === 1) { $priceLabel.textContent = `${products[0].prices.price.formatted}`; } else { const cheapestProduct = products.reduce((prevCheapest, current) => current.prices.price.value < prevCheapest.prices.price.value ? current : prevCheapest) $priceLabel.textContent = `from ${cheapestProduct.prices.price.formatted}` } $content.appendChild($typeLabel); $content.appendChild($priceLabel); $link.appendChild($content); $tab.appendChild($link); $tabs.appendChild($tab); }) if (productsByType.hasOwnProperty(ecomProductType) && productsByType[ecomProductType].length > 1) { const $tabContent = document.querySelector('.productView-content') const $details = $tabContent.querySelector('.productView-content__details') const $upperContent = $tabContent.querySelector('.productView-content__duration') const $buySection = $tabContent.querySelector('.productView-content__options') const $singularProductIdField = document.getElementById('product-id-field') const $productLang = document.querySelector('.productView-content__lang') if ($singularProductIdField) { $singularProductIdField.remove() } $details.innerHTML = '' $upperContent.innerHTML = '' const $optionsContainer = document.createElement('fieldset') $optionsContainer.classList.add('product-list') const $legend = document.createElement('legend') $legend.classList.add('product-list__legend') $legend.textContent = 'Products list' $optionsContainer.appendChild($legend) const $options = document.createElement('ul') $options.classList.add('product-list__list') const optionProducts = productsByType[ecomProductType] optionProducts.forEach(product => { const $option = document.createElement('li') $option.classList.add('product-list__item') const $content = document.createElement('label') $content.classList.add('format-product-item') const ecomProductTypeField = product.customFields.edges.find(field => field.node.name === 'ecomProductType')?.node?.value const $radio = document.createElement('input') $radio.classList.add('format-product-item__radio') $radio.name = 'product_id' $radio.value = product.entityId $radio.type = 'radio' $radio.checked = productId == product.entityId.toString() $radio.addEventListener('change', (e) => { const $addToCartHint = $addToCart.querySelector('.product-in-cart-hint') const isProductInCart = (value, items) => { return items?.some(item => item.product_id == value) } const updateAddBtn = (isInCart) => { $addToCart.disabled = isInCart } const handleAddToCartChange = (e) => { const isInCart = isProductInCart(e.target.value, cartItems) updateAddBtn(isInCart) } handleAddToCartChange(e) if (isShowAccessInfoForTabs && !noBothEtextVitalsource){ $productViewType.innerHTML = '' renderExtraInfoSpecificEachTab(ecomProductTypeField) } const $productLang = document.querySelector('.productView-content__lang') const $productLangImg = document.querySelector('.productView__image-label') const $productLangImgContainer = document.querySelector('.productView__image-banner') const langCode = product?.customFields?.edges.find((el) => el?.node?.name === "language")?.node?.value; if (langCode) { $productLang.style.display = 'block'; $productLang.textContent = `Language: ${langabbr[langCode]}`; $productLangImgContainer.style.display = 'block'; $productLangImg.textContent = `${langabbr[langCode]}`; } else { $productLangImgContainer.style.display = 'none'; $productLang.style.display = 'none'; $productLangImg.textContent = ''; } $tabContent.querySelector('.price--withTax').textContent = product.prices.price.formatted $tabContent.querySelector('.price--rrp').textContent = product.prices.retailPrice?.formatted if(isIndiaStore && product.prices.salePrice) { const basePrice = $tabContent.querySelector('.price--non-sale-india') basePrice.textContent = product.prices.basePrice?.formatted basePrice.style.visibility = 'visible' } else if(!product.prices.salePrice) { $tabContent.querySelector('.price--non-sale').textContent = '' } else { $tabContent.querySelector('.price--non-sale').textContent = product.prices.basePrice?.formatted } $tabContent.querySelector('.price--saving').textContent = product.prices.saved?.formatted document.querySelector('[data-main-image]').src = product.defaultImage?.urlOriginal || defaultImageURL document.querySelector('[data-main-image]').srcset = product.defaultImage?.urlOriginal || defaultImageURL document.getElementById('tab-description').querySelector('.tab-content__wrapper').innerHTML = product?.description const $publishedBy = document.getElementById('published-by') const publishedByField = product.customFields.edges.find(field => field.node.name === 'publishedBy') if ($publishedBy && publishedByField) { $publishedBy.textContent = publishedByField.node.value } const $publicationDate = document.getElementById('publication-date') const publicationDataField = product.customFields.edges.find(field => field.node.name === 'publicationDate') if ($publicationDate && publicationDataField) { $publicationDate.textContent = publicationDataField.node.value } const $copyright = document.getElementById('copyright') const copyrightField = product.customFields.edges.find(field => field.node.name === 'copyright') if ($copyright && copyrightField) { $copyright.textContent = copyrightField.node.value } const $authors = document.getElementById('authors') const authorsField = product.customFields.edges.find(field => field.node.name === 'authors') if ($authors && authorsField) { $authors.textContent = authorsField.node.value.split(',').join(' | ') } const productPath = countrySuffixs.includes(countryUrlSegment) ? '/' + countryUrlSegment + product.path : product.path; window.history.pushState(null, '', productPath) }) $content.appendChild($radio) const durationField = product.customFields.edges.find(field => field.node.name === 'duration') const $duration = document.createElement('span') $duration.classList.add('format-product-item__text', 'format-product-item__text--duration') $duration.textContent = formatDurationText(ecomProductTypeField, durationField?.node?.value); $content.appendChild($duration) const $title = document.createElement('span') $title.classList.add('format-product-item__text', 'format-product-item__text--title') $title.textContent = product.name.includes('::') ? product.name.split('::')[0] : product.name $content.appendChild($title) const publicationDateField = product.customFields.edges.find(field => field.node.name === 'publicationDate') const $info = document.createElement('span') $info.classList.add('format-product-item__text', 'format-product-item__text--info') $info.textContent = `ISBN-13: ${product.sku}${publicationDateField ? ` | Published ${publicationDateField.node.value}` : ''}` $content.appendChild($info) const $price = document.createElement('span') $price.classList.add('format-product-item__text', 'format-product-item__text--price') $price.textContent = `${product.prices.price.formatted}` $content.appendChild($price) if(isIndiaStore && product.prices?.salePrice){ const $basePrice = document.createElement('span') $basePrice.classList.add('format-product-item__text', 'format-product-item__text--basePrice') $basePrice.textContent = `${product.prices.basePrice.formatted}` $content.appendChild($basePrice) } $option.appendChild($content) $options.appendChild($option) }) $optionsContainer.appendChild($options) $upperContent.appendChild($optionsContainer) $buySection.classList.add('productView-content__options--vertical') } } if(isShowAccessInfoForTabs){ renderExtraInfoSpecificEachTab(ecomProductType) }
    C Primer Plus ,6th edition::9780133432381 (2025)

    References

    Top Articles
    Latest Posts
    Recommended Articles
    Article information

    Author: Rob Wisoky

    Last Updated:

    Views: 5626

    Rating: 4.8 / 5 (48 voted)

    Reviews: 95% of readers found this page helpful

    Author information

    Name: Rob Wisoky

    Birthday: 1994-09-30

    Address: 5789 Michel Vista, West Domenic, OR 80464-9452

    Phone: +97313824072371

    Job: Education Orchestrator

    Hobby: Lockpicking, Crocheting, Baton twirling, Video gaming, Jogging, Whittling, Model building

    Introduction: My name is Rob Wisoky, I am a smiling, helpful, encouraging, zealous, energetic, faithful, fantastic person who loves writing and wants to share my knowledge and understanding with you.