{"id":57,"date":"2007-08-17T08:09:25","date_gmt":"2007-08-17T12:09:25","guid":{"rendered":"http:\/\/www.jrtwine.com\/blog\/?p=57"},"modified":"2007-09-17T11:21:35","modified_gmt":"2007-09-17T15:21:35","slug":"cstring-misuse-2","status":"publish","type":"post","link":"https:\/\/jrtwine.com\/blog\/cstring-misuse-2\/","title":{"rendered":"CString misuse #2"},"content":{"rendered":"<p>Here is another one:<\/p>\n<p><code>\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<br \/>\nLPCTSTR cpString = _T( \"This was some string message...\" );<br \/>\n\/\/<br \/>\n\/\/ Later On In Code...<br \/>\n\/\/<br \/>\nCString str( cpString );<br \/>\nchar cChar = str.GetAt( 0 );<br \/>\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/code><\/p>\n<p>If you write code like this, stop now and back slowly away from the keyboard &#8211; <strong><em>You&#8217;re Doing It Wrong!<\/em><\/strong><\/p>\n<p>The developer here is using a string object for a very simple operation.  This is the kind of think people talk about when they say something like &#8220;using a shotgun to kill a fly&#8221;.  <\/p>\n<p>Extracting characters from a string (an array!) is a very basic operation &#8211; it is something we learn in our first C\/C++ class or read about in our first C\/C++ book.  This is not something that you need a heavyweight class to help you out with.<\/p>\n<p>Extracting the first character from <strong>cpString<\/strong> is as easy as doing one of the following:<\/p>\n<p><code>\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<br \/>\nchar cChar = *cpString;<br \/>\n\/\/<br \/>\n\/\/ -Or-<br \/>\n\/\/<br \/>\nchar cChar = cpString[ 0 ];<br \/>\n\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/<\/code><\/p>\n<p>Remember &#8211; constructing and initializing an object always takes longer (i.e. has more overhead) than <em>not<\/em> constructing and initializing one.  Think about wether or not you really need an object before you create one.  If you can get along without it, see if doing so improves things.<\/p>\n<p>For reasons mentioned in a previous post, in this case, the code is better <em>without<\/em> the <strong>CString<\/strong>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Here is another one: \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ LPCTSTR cpString = _T( &#8220;This was some string message&#8230;&#8221; ); \/\/ \/\/ Later On In Code&#8230; \/\/ CString str( cpString ); char cChar = str.GetAt( 0 ); \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ If you write code like this, stop now and back slowly away from the keyboard &#8211; You&#8217;re Doing It Wrong! The developer [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,19],"tags":[],"class_list":["post-57","post","type-post","status-publish","format-standard","hentry","category-developing","category-youre-doing-it-wrong"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Here is another one: \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ LPCTSTR cpString = _T( &quot;This was some string message...&quot; ); \/\/ \/\/ Later On In Code... \/\/ CString str( cpString ); char cChar = str.GetAt( 0 ); \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ If you write code like this, stop now and back slowly away from the keyboard - You&#039;re Doing It Wrong! The developer\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"James R. Twine\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/jrtwine.com\/blog\/cstring-misuse-2\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"James R Twine Blog -\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"CString misuse #2 - James R Twine Blog\" \/>\n\t\t<meta property=\"og:description\" content=\"Here is another one: \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ LPCTSTR cpString = _T( &quot;This was some string message...&quot; ); \/\/ \/\/ Later On In Code... \/\/ CString str( cpString ); char cChar = str.GetAt( 0 ); \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ If you write code like this, stop now and back slowly away from the keyboard - You&#039;re Doing It Wrong! The developer\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/jrtwine.com\/blog\/cstring-misuse-2\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2007-08-17T12:09:25+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2007-09-17T15:21:35+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"CString misuse #2 - James R Twine Blog\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Here is another one: \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ LPCTSTR cpString = _T( &quot;This was some string message...&quot; ); \/\/ \/\/ Later On In Code... \/\/ CString str( cpString ); char cChar = str.GetAt( 0 ); \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ If you write code like this, stop now and back slowly away from the keyboard - You&#039;re Doing It Wrong! The developer\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/cstring-misuse-2\\\/#blogposting\",\"name\":\"CString misuse #2 - James R Twine Blog\",\"headline\":\"CString misuse #2\",\"author\":{\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/author\\\/jtwine\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/#organization\"},\"datePublished\":\"2007-08-17T08:09:25+00:00\",\"dateModified\":\"2007-09-17T11:21:35+00:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/cstring-misuse-2\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/cstring-misuse-2\\\/#webpage\"},\"articleSection\":\"Developing, You're Doing It Wrong\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/cstring-misuse-2\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/category\\\/developing\\\/#listItem\",\"name\":\"Developing\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/category\\\/developing\\\/#listItem\",\"position\":2,\"name\":\"Developing\",\"item\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/category\\\/developing\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/cstring-misuse-2\\\/#listItem\",\"name\":\"CString misuse #2\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/cstring-misuse-2\\\/#listItem\",\"position\":3,\"name\":\"CString misuse #2\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/category\\\/developing\\\/#listItem\",\"name\":\"Developing\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/#organization\",\"name\":\"James R Twine Blog\",\"url\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/author\\\/jtwine\\\/#author\",\"url\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/author\\\/jtwine\\\/\",\"name\":\"James R. Twine\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/cstring-misuse-2\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/77d36362e353ec1c88adc48b48055faee96497898a208d3a6a05897d4902e552?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"James R. Twine\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/cstring-misuse-2\\\/#webpage\",\"url\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/cstring-misuse-2\\\/\",\"name\":\"CString misuse #2 - James R Twine Blog\",\"description\":\"Here is another one: \\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/ LPCTSTR cpString = _T( \\\"This was some string message...\\\" ); \\\/\\\/ \\\/\\\/ Later On In Code... \\\/\\\/ CString str( cpString ); char cChar = str.GetAt( 0 ); \\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/\\\/ If you write code like this, stop now and back slowly away from the keyboard - You're Doing It Wrong! The developer\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/cstring-misuse-2\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/author\\\/jtwine\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/author\\\/jtwine\\\/#author\"},\"datePublished\":\"2007-08-17T08:09:25+00:00\",\"dateModified\":\"2007-09-17T11:21:35+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/\",\"name\":\"James R Twine Blog\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/jrtwine.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"CString misuse #2 - James R Twine Blog","description":"Here is another one: \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ LPCTSTR cpString = _T( \"This was some string message...\" ); \/\/ \/\/ Later On In Code... \/\/ CString str( cpString ); char cChar = str.GetAt( 0 ); \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ If you write code like this, stop now and back slowly away from the keyboard - You're Doing It Wrong! The developer","canonical_url":"https:\/\/jrtwine.com\/blog\/cstring-misuse-2\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/jrtwine.com\/blog\/cstring-misuse-2\/#blogposting","name":"CString misuse #2 - James R Twine Blog","headline":"CString misuse #2","author":{"@id":"https:\/\/jrtwine.com\/blog\/author\/jtwine\/#author"},"publisher":{"@id":"https:\/\/jrtwine.com\/blog\/#organization"},"datePublished":"2007-08-17T08:09:25+00:00","dateModified":"2007-09-17T11:21:35+00:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/jrtwine.com\/blog\/cstring-misuse-2\/#webpage"},"isPartOf":{"@id":"https:\/\/jrtwine.com\/blog\/cstring-misuse-2\/#webpage"},"articleSection":"Developing, You're Doing It Wrong"},{"@type":"BreadcrumbList","@id":"https:\/\/jrtwine.com\/blog\/cstring-misuse-2\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/jrtwine.com\/blog\/#listItem","position":1,"name":"Home","item":"https:\/\/jrtwine.com\/blog\/","nextItem":{"@type":"ListItem","@id":"https:\/\/jrtwine.com\/blog\/category\/developing\/#listItem","name":"Developing"}},{"@type":"ListItem","@id":"https:\/\/jrtwine.com\/blog\/category\/developing\/#listItem","position":2,"name":"Developing","item":"https:\/\/jrtwine.com\/blog\/category\/developing\/","nextItem":{"@type":"ListItem","@id":"https:\/\/jrtwine.com\/blog\/cstring-misuse-2\/#listItem","name":"CString misuse #2"},"previousItem":{"@type":"ListItem","@id":"https:\/\/jrtwine.com\/blog\/#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/jrtwine.com\/blog\/cstring-misuse-2\/#listItem","position":3,"name":"CString misuse #2","previousItem":{"@type":"ListItem","@id":"https:\/\/jrtwine.com\/blog\/category\/developing\/#listItem","name":"Developing"}}]},{"@type":"Organization","@id":"https:\/\/jrtwine.com\/blog\/#organization","name":"James R Twine Blog","url":"https:\/\/jrtwine.com\/blog\/"},{"@type":"Person","@id":"https:\/\/jrtwine.com\/blog\/author\/jtwine\/#author","url":"https:\/\/jrtwine.com\/blog\/author\/jtwine\/","name":"James R. Twine","image":{"@type":"ImageObject","@id":"https:\/\/jrtwine.com\/blog\/cstring-misuse-2\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/77d36362e353ec1c88adc48b48055faee96497898a208d3a6a05897d4902e552?s=96&d=mm&r=g","width":96,"height":96,"caption":"James R. Twine"}},{"@type":"WebPage","@id":"https:\/\/jrtwine.com\/blog\/cstring-misuse-2\/#webpage","url":"https:\/\/jrtwine.com\/blog\/cstring-misuse-2\/","name":"CString misuse #2 - James R Twine Blog","description":"Here is another one: \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ LPCTSTR cpString = _T( \"This was some string message...\" ); \/\/ \/\/ Later On In Code... \/\/ CString str( cpString ); char cChar = str.GetAt( 0 ); \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ If you write code like this, stop now and back slowly away from the keyboard - You're Doing It Wrong! The developer","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/jrtwine.com\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/jrtwine.com\/blog\/cstring-misuse-2\/#breadcrumblist"},"author":{"@id":"https:\/\/jrtwine.com\/blog\/author\/jtwine\/#author"},"creator":{"@id":"https:\/\/jrtwine.com\/blog\/author\/jtwine\/#author"},"datePublished":"2007-08-17T08:09:25+00:00","dateModified":"2007-09-17T11:21:35+00:00"},{"@type":"WebSite","@id":"https:\/\/jrtwine.com\/blog\/#website","url":"https:\/\/jrtwine.com\/blog\/","name":"James R Twine Blog","inLanguage":"en-US","publisher":{"@id":"https:\/\/jrtwine.com\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"James R Twine Blog -","og:type":"article","og:title":"CString misuse #2 - James R Twine Blog","og:description":"Here is another one: \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ LPCTSTR cpString = _T( &quot;This was some string message...&quot; ); \/\/ \/\/ Later On In Code... \/\/ CString str( cpString ); char cChar = str.GetAt( 0 ); \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ If you write code like this, stop now and back slowly away from the keyboard - You're Doing It Wrong! The developer","og:url":"https:\/\/jrtwine.com\/blog\/cstring-misuse-2\/","article:published_time":"2007-08-17T12:09:25+00:00","article:modified_time":"2007-09-17T15:21:35+00:00","twitter:card":"summary_large_image","twitter:title":"CString misuse #2 - James R Twine Blog","twitter:description":"Here is another one: \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ LPCTSTR cpString = _T( &quot;This was some string message...&quot; ); \/\/ \/\/ Later On In Code... \/\/ CString str( cpString ); char cChar = str.GetAt( 0 ); \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ If you write code like this, stop now and back slowly away from the keyboard - You're Doing It Wrong! The developer"},"aioseo_meta_data":{"post_id":"57","title":null,"description":null,"keywords":null,"keyphrases":null,"focus_keyword":null,"additional_keywords":null,"truseo_locale":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_custom_url":null,"og_image_custom_fields":null,"og_image_url":null,"og_image_width":null,"og_image_height":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_image_url":null,"twitter_title":null,"twitter_description":null,"schema_type":"default","schema_type_options":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null,"created":"2026-09-17 06:50:56","updated":"2026-09-17 06:50:56"},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/jrtwine.com\/blog\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/jrtwine.com\/blog\/category\/developing\/\" title=\"Developing\">Developing<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tCString misuse #2\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/jrtwine.com\/blog\/"},{"label":"Developing","link":"https:\/\/jrtwine.com\/blog\/category\/developing\/"},{"label":"CString misuse #2","link":"https:\/\/jrtwine.com\/blog\/cstring-misuse-2\/"}],"_links":{"self":[{"href":"https:\/\/jrtwine.com\/blog\/wp-json\/wp\/v2\/posts\/57","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jrtwine.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jrtwine.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jrtwine.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jrtwine.com\/blog\/wp-json\/wp\/v2\/comments?post=57"}],"version-history":[{"count":0,"href":"https:\/\/jrtwine.com\/blog\/wp-json\/wp\/v2\/posts\/57\/revisions"}],"wp:attachment":[{"href":"https:\/\/jrtwine.com\/blog\/wp-json\/wp\/v2\/media?parent=57"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jrtwine.com\/blog\/wp-json\/wp\/v2\/categories?post=57"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jrtwine.com\/blog\/wp-json\/wp\/v2\/tags?post=57"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}