... expressions like if(65<=name[i]<=90); that is not valid C
Strictly speaking, that is valid C, though it does not do what you might expect. In fact it will always return 1 (true), since it is equivalent to if ( (65 <= name[i]) <= 90). The expression (65 <= name[i]) evaluates to either true (1) or false (0), both of which are <= 90, so the expression will always be true.
Better than using "magic numbers", or even char constants, why not useisupper(), islower(), toupper() and tolower())?
That's clear and concise, I think, and has the advantage that if you need to migrate to an non ASCII environment [e.g. EBCDIC, but not UTF-X (and really, who does, these days?)], it will still work without any code changes. It will also work for locales other that C/POSIX
toupper() and tolower() only transform characters that evaluate true for isupper() and islower(), respectively, so non alphabetic chars are not changed by passing through them. The ternary ?: operator should be approached with caution though, as it often makes code harder to understand, particularly for users new to C
Yes that is all very well. But my reply was for someone who obviously only knows the very basics of C, and even that not very well. Trying to explain ternary operators to someone who does not really understand binary ones is not the best way forward.
The very minimum requirement today is to handle ISO 8859-1 in the Western world (8859-x in other parts). But for software developed this millennium, the real minimum requirement is the Unicode Basic Multilingual Plane. (In fact, I do not know if there concept of upper/lower cases is relevant for any characters outside the BMP.)
Handling a-z only belongs back in the age of 80-column punched cards.
I Am building a windows form application that accept an expression involving two variables and two numerical values for the variables through a text box.
the App is then suppose to display a functional value for the user.
I tried everything possible but keep getting error "input string was not in correct format"
Thanks in advance for your help (anyone).
Most likely you are trying to convert some characters into a numeric, but it contains letters or special characters. However, since you have not shown us your code, or the data that it is trying to access, that is just a guess.
Need technical help . I am debugging the code and getting this
"Source information is missing from the debug information for this module" . while debuggin.
I am referring .dll in the code, that .dll is also build debug. and while debugging the code i have added (dll refered) project
in my project. still it not loading to breakpoint.
Could you please guide me on this?
Whether that dll is built in debug mode doesn't matter for debugging, in spite of the name! What you need is the .pdb file for that DLL. The .pdb file contains all the references that link the compiled code segments to the original code statements. If you have the .pdb, make sure it's accessible, e. g. in the same directory as the .dll file, or in the directory of your application.
If you have that DLL in your solution, includ9ing the source code, you should check your build options and make sure a .pdb is actually built.
GOTOs are a bit like wire coat hangers: they tend to breed in the darkness, such that where there once were few, eventually there are many, and the program's architecture collapses beneath them. (Fran Poretto)
Hi there, I am having the big problem with getting the area of hwind with
routine GetWindowRect. Even Spy++ or his implementation returns rectangle, that is smaller than real
area. Its a some special kind of application, I am looking for some alternative to GetWindowRect,
or how can I get all the window area programmatically correct.
i have the Following vb.net 2008 routine i am trying to get c++ to have the same functionality having alot of issues with c++ conversion, any help with this would be great...
Public Sub New()
If ORIHoles Is Nothing Then
Dim ff As Integer = FreeFile()
Dim tempstr As String
Dim atempstr() As String
FileOpen(ff, "postable.csv", OpenMode.Input, OpenAccess.Read, OpenShare.Shared)
Do While Not EOF(ff)
tempstr = LineInput(ff)
atempstr = tempstr.Split(",")
If atempstr.GetUpperBound(0) = 2 Then
ORIHoles(CInt(atempstr(0))).Angle = CDbl(atempstr(1))
ORIHoles(CInt(atempstr(0))).Hypot = CDbl(atempstr(2))
Catch ex As Exception
Last Visit: 29-Nov-20 17:02 Last Update: 29-Nov-20 17:02