Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Other Discussions
  3. The Weird and The Wonderful
  4. Fun With CString

Fun With CString

Scheduled Pinned Locked Moved The Weird and The Wonderful
regex
14 Posts 6 Posters 10 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Offline
    R Offline
    Rick York
    wrote on last edited by
    #1

    A while ago I inherited a project that was full of the following :

    // str1 and str2 are both fixed-length character strings

    if( CString( str1 ) == CString( str2 ) )
    {
    // strings match so do something here
    }

    That was the most annoying thing for a variety of reasons. I should mention that this was a communications-oriented project and all of the character strings had defined sizes so that as OK but apparently someone had an aversion to the strcmp function. I couldn't believe it. Even when there was an actual CString object, like from a dialog, they would cast the other argument to a CString to do the comparison. I guess they didn't know that CString has a const char * operator. :rolleyes:

    CPalliniC K S 4 Replies Last reply
    0
    • R Rick York

      A while ago I inherited a project that was full of the following :

      // str1 and str2 are both fixed-length character strings

      if( CString( str1 ) == CString( str2 ) )
      {
      // strings match so do something here
      }

      That was the most annoying thing for a variety of reasons. I should mention that this was a communications-oriented project and all of the character strings had defined sizes so that as OK but apparently someone had an aversion to the strcmp function. I couldn't believe it. Even when there was an actual CString object, like from a dialog, they would cast the other argument to a CString to do the comparison. I guess they didn't know that CString has a const char * operator. :rolleyes:

      CPalliniC Online
      CPalliniC Online
      CPallini
      wrote on last edited by
      #2

      That's typical of people without C background. :)

      If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
      This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
      [My articles]

      In testa che avete, signor di Ceprano?

      L 1 Reply Last reply
      0
      • CPalliniC CPallini

        That's typical of people without C background. :)

        If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
        This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
        [My articles]

        L Offline
        L Offline
        leppie
        wrote on last edited by
        #3

        CPallini wrote:

        That's typical of people without C background.

        I think you mean C++. ;P

        xacc.ide - now with TabsToSpaces support
        IronScheme - 1.0 alpha 4a out now (29 May 2008)

        CPalliniC 1 Reply Last reply
        0
        • L leppie

          CPallini wrote:

          That's typical of people without C background.

          I think you mean C++. ;P

          xacc.ide - now with TabsToSpaces support
          IronScheme - 1.0 alpha 4a out now (29 May 2008)

          CPalliniC Online
          CPalliniC Online
          CPallini
          wrote on last edited by
          #4

          leppie wrote:

          think you mean C++.

          Well, C is the C++'s background foundation. :-D

          If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
          This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
          [My articles]

          In testa che avete, signor di Ceprano?

          L 1 Reply Last reply
          0
          • R Rick York

            A while ago I inherited a project that was full of the following :

            // str1 and str2 are both fixed-length character strings

            if( CString( str1 ) == CString( str2 ) )
            {
            // strings match so do something here
            }

            That was the most annoying thing for a variety of reasons. I should mention that this was a communications-oriented project and all of the character strings had defined sizes so that as OK but apparently someone had an aversion to the strcmp function. I couldn't believe it. Even when there was an actual CString object, like from a dialog, they would cast the other argument to a CString to do the comparison. I guess they didn't know that CString has a const char * operator. :rolleyes:

            CPalliniC Online
            CPalliniC Online
            CPallini
            wrote on last edited by
            #5

            BTW Suppose CString equality operator implemented in a Java-string fashion: possibly the fun would be more. :-D

            If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
            This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
            [My articles]

            In testa che avete, signor di Ceprano?

            1 Reply Last reply
            0
            • CPalliniC CPallini

              leppie wrote:

              think you mean C++.

              Well, C is the C++'s background foundation. :-D

              If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
              This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
              [My articles]

              L Offline
              L Offline
              leppie
              wrote on last edited by
              #6

              CPallini wrote:

              Well, C is the C++'s background foundation.

              But C has no types (well not like the OP has ;P ).

              xacc.ide - now with TabsToSpaces support
              IronScheme - 1.0 alpha 4a out now (29 May 2008)

              CPalliniC 1 Reply Last reply
              0
              • L leppie

                CPallini wrote:

                Well, C is the C++'s background foundation.

                But C has no types (well not like the OP has ;P ).

                xacc.ide - now with TabsToSpaces support
                IronScheme - 1.0 alpha 4a out now (29 May 2008)

                CPalliniC Online
                CPalliniC Online
                CPallini
                wrote on last edited by
                #7

                leppie wrote:

                But C has no types

                That's precisely my point. ;) Only with a (solid maybe) C background he would appreciate the introduced overhead. While, for instance, VB6 people (don't blame me for the cheap shot) maybe used to thinking String is a native type. :)

                If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
                This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
                [My articles]

                In testa che avete, signor di Ceprano?

                1 Reply Last reply
                0
                • R Rick York

                  A while ago I inherited a project that was full of the following :

                  // str1 and str2 are both fixed-length character strings

                  if( CString( str1 ) == CString( str2 ) )
                  {
                  // strings match so do something here
                  }

                  That was the most annoying thing for a variety of reasons. I should mention that this was a communications-oriented project and all of the character strings had defined sizes so that as OK but apparently someone had an aversion to the strcmp function. I couldn't believe it. Even when there was an actual CString object, like from a dialog, they would cast the other argument to a CString to do the comparison. I guess they didn't know that CString has a const char * operator. :rolleyes:

                  K Offline
                  K Offline
                  KarstenK
                  wrote on last edited by
                  #8

                  Who knows what the compiler and linker will made of this statement. :rolleyes: I try hard to make parameters const so it can better be optimized. :-O

                  Greetings from Germany

                  1 Reply Last reply
                  0
                  • R Rick York

                    A while ago I inherited a project that was full of the following :

                    // str1 and str2 are both fixed-length character strings

                    if( CString( str1 ) == CString( str2 ) )
                    {
                    // strings match so do something here
                    }

                    That was the most annoying thing for a variety of reasons. I should mention that this was a communications-oriented project and all of the character strings had defined sizes so that as OK but apparently someone had an aversion to the strcmp function. I couldn't believe it. Even when there was an actual CString object, like from a dialog, they would cast the other argument to a CString to do the comparison. I guess they didn't know that CString has a const char * operator. :rolleyes:

                    S Offline
                    S Offline
                    steveb
                    wrote on last edited by
                    #9

                    Nothing wrong with that statement. Creates two CString objects and do case sensitive compare with CString == operator.

                    CPalliniC R 2 Replies Last reply
                    0
                    • S steveb

                      Nothing wrong with that statement. Creates two CString objects and do case sensitive compare with CString == operator.

                      CPalliniC Online
                      CPalliniC Online
                      CPallini
                      wrote on last edited by
                      #10

                      steveb wrote:

                      Nothing wrong with that statement

                      In fact it isn't wrong. But it is unnecessary (just added overhead). :)

                      If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
                      This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
                      [My articles]

                      In testa che avete, signor di Ceprano?

                      S 1 Reply Last reply
                      0
                      • CPalliniC CPallini

                        steveb wrote:

                        Nothing wrong with that statement

                        In fact it isn't wrong. But it is unnecessary (just added overhead). :)

                        If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
                        This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
                        [My articles]

                        S Offline
                        S Offline
                        steveb
                        wrote on last edited by
                        #11

                        if this was the production code of some server that kept on crashing while communicating with clients, the code snippet mentioned is the exact thing I would put in in place of the strcmp which in unsafe. yeah yeah there is strcmp_s, but that just come out in 2005. Code is probably older.

                        CPalliniC J 2 Replies Last reply
                        0
                        • S steveb

                          Nothing wrong with that statement. Creates two CString objects and do case sensitive compare with CString == operator.

                          R Offline
                          R Offline
                          Rick York
                          wrote on last edited by
                          #12

                          After the description I have given, you see nothing wrong with creating two objects to do a string comparison and doing this every single time that two strings need to be compared in the app ? All righty then. This was in an industrial automation system. That might give a clue as to why I consider it to be horrific. Or not.

                          1 Reply Last reply
                          0
                          • S steveb

                            if this was the production code of some server that kept on crashing while communicating with clients, the code snippet mentioned is the exact thing I would put in in place of the strcmp which in unsafe. yeah yeah there is strcmp_s, but that just come out in 2005. Code is probably older.

                            CPalliniC Online
                            CPalliniC Online
                            CPallini
                            wrote on last edited by
                            #13

                            Well using temporary objects to wrap unreliable code doesn't make sense to me. I simply won't use unreliable code on a server. :)

                            If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler. -- Alfonso the Wise, 13th Century King of Castile.
                            This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong. -- Iain Clarke
                            [My articles]

                            In testa che avete, signor di Ceprano?

                            1 Reply Last reply
                            0
                            • S steveb

                              if this was the production code of some server that kept on crashing while communicating with clients, the code snippet mentioned is the exact thing I would put in in place of the strcmp which in unsafe. yeah yeah there is strcmp_s, but that just come out in 2005. Code is probably older.

                              J Offline
                              J Offline
                              Joe Woodbury
                              wrote on last edited by
                              #14

                              What, checking for null is to sophisticated for you? :)

                              Anyone who thinks he has a better idea of what's good for people than people do is a swine. - P.J. O'Rourke

                              1 Reply Last reply
                              0
                              Reply
                              • Reply as topic
                              Log in to reply
                              • Oldest to Newest
                              • Newest to Oldest
                              • Most Votes


                              • Login

                              • Don't have an account? Register

                              • Login or register to search.
                              • First post
                                Last post
                              0
                              • Categories
                              • Recent
                              • Tags
                              • Popular
                              • World
                              • Users
                              • Groups