Fun With CString
-
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:
-
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:
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] -
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] -
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)leppie wrote:
think you mean C++.
Well,
C
is theC++
's background foundation. :-DIf 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] -
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:
BTW Suppose
CString
equality operator implemented in aJava
-string fashion: possibly the fun would be more. :-DIf 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] -
leppie wrote:
think you mean C++.
Well,
C
is theC++
's background foundation. :-DIf 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] -
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)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 thinkingString
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] -
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:
-
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:
-
Nothing wrong with that statement. Creates two CString objects and do case sensitive compare with CString == operator.
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] -
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]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.
-
Nothing wrong with that statement. Creates two CString objects and do case sensitive compare with CString == operator.
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.
-
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.
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] -
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.
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