Every time I run the compiler on the proceeding function, I get the following compiler error:
"ISO C++ forbids comparison between pointer and integer" On Line 15.
I am using Bloodshed Dev-C++ 4.9.9.2 on a Windows XP machine with service pack two.
Here is the function: - string sperat(string original)
-
{
-
string one;
-
string two;
-
char letter;
-
int positionOne = 0;
-
int positionTwo = 0;
-
//End Variables
-
//!*!*!*!*!*!*!*!*!*!*
-
//!*!*!*!*!*!*!*!*!*!*
-
//Begin Function Processes
-
one = original + " ";
-
while (positionOne != one.length()) {
-
letter = one[positionOne];
-
if (letter != " ") {
-
positionOne = positionOne + 1;
-
}
-
else {
-
one.replace(positionOne, 1, ",");
-
two = two + one;
-
positionOne = positionOne + 1;
-
}
-
}
-
return two;
-
}
Thank you for your help.
7 1615
Every time I run the compiler on the proceeding function, I get the following compiler error:
"ISO C++ forbids comparison between pointer and integer" On Line 15.
I am using Bloodshed Dev-C++ 4.9.9.2 on a Windows XP machine with service pack two.
Here is the function: - string sperat(string original)
-
{
-
string one;
-
string two;
-
char letter;
-
int positionOne = 0;
-
int positionTwo = 0;
-
//End Variables
-
//!*!*!*!*!*!*!*!*!*!*
-
//!*!*!*!*!*!*!*!*!*!*
-
//Begin Function Processes
-
one = original + " ";
-
while (positionOne != one.length()) {
-
letter = one[positionOne];
-
if (letter != " ") {
-
positionOne = positionOne + 1;
-
}
-
else {
-
one.replace(positionOne, 1, ",");
-
two = two + one;
-
positionOne = positionOne + 1;
-
}
-
}
-
return two;
-
}
Thank you for your help.
Letter is a pointer to one[positionOne] and therefore you are comparing a pointer and an integer.
It's here:
if (letter != " ") {
letter is a char the " " is a literal using " " means to use the address of the literal.
You should compare a single space to your single char:
Just use single quotes instead of double quotes.
It's here:
letter is a char the " " is a literal using " " means to use the address of the literal.
You should compare a single space to your single char:
Just use single quotes instead of double quotes.
That is great, It worked perfectly.
But, what is wrong with that function? What I'm trying to do is to replace all of the spaces with a cama.
There were several things preventing it from working. I did a code-ectomy and reduced it to this: -
string sperat(string original)
-
{
-
-
unsigned int positionOne = 0;
-
//End Variables
-
//!*!*!*!*!*!*!*!*!*!*
-
//!*!*!*!*!*!*!*!*!*!*
-
//Begin Function Processes
-
while (positionOne <= original.size())
-
{
-
-
if (original[positionOne] == ' ')
-
{
-
original[positionOne] = ',';
-
}
-
++positionOne;
-
-
}
-
return original;
-
}
-
You didn't need two strings. The argument, original, is a copy of the caller's string so you might as well just make the changes there and return a copy to the caller.
Your loop need to run from 0 to original.size(). Hence the <=.
You should use string::size() for the number of characters rather than string::length(). string::length() is deprecated since none of the other STL containers have a length() but they all have a size() for the number of elements in thje container.
Rather than use a replace I just assigned all space element a comma.
There were several things preventing it from working. I did a code-ectomy and reduced it to this: -
string sperat(string original)
-
{
-
-
unsigned int positionOne = 0;
-
//End Variables
-
//!*!*!*!*!*!*!*!*!*!*
-
//!*!*!*!*!*!*!*!*!*!*
-
//Begin Function Processes
-
while (positionOne <= original.size())
-
{
-
-
if (original[positionOne] == ' ')
-
{
-
original[positionOne] = ',';
-
}
-
++positionOne;
-
-
}
-
return original;
-
}
-
You didn't need two strings. The argument, original, is a copy of the caller's string so you might as well just make the changes there and return a copy to the caller.
Your loop need to run from 0 to original.size(). Hence the <=.
You should use string::size() for the number of characters rather than string::length(). string::length() is deprecated since none of the other STL containers have a length() but they all have a size() for the number of elements in thje container.
Rather than use a replace I just assigned all space element a comma.
Alright, thank you a lot for all of the effort.
Just one question: what is an unsigned int, and why would you use it?
I've just never had seen that type of variable beofre today.
An unsigned int is just an integer where the sign bit is part of the integer value. By doing this you can store a number twice as large as can fit in an int but the value must always be positive.
The return from string::size() is an unsigned int. If I assign that to an int, the compiler will give me a warning about truncation and possible loss of data.
An unsigned int is just an integer where the sign bit is part of the integer value. By doing this you can store a number twice as large as can fit in an int but the value must always be positive.
The return from string::size() is an unsigned int. If I assign that to an int, the compiler will give me a warning about truncation and possible loss of data.
Oh, okay.
Well, thank you for all the help and effort put into this, it has helped me a lot.
Also, I just wanted to say that this website and all of its users are a great help to people like me: barley into their teen years, self taught at programming, and willing to learn.
Thanks.
Sign in to post your reply or Sign up for a free account.
Similar topics
by: AIM |
last post by:
Error in msvc in building inheritance.obj to build hello.pyd
Hello,
I am trying to build the boost 1.31.0 sample extension hello.cpp.
I can not compile the file inheritance.cpp because the two...
|
by: Gregory |
last post by:
Hi,
One of the disadvantages of using error handling with error codes
instead of exception handling is that error codes retuned from a
function can be forgotten to check thus leading to...
|
by: deko |
last post by:
I use this convention frequently:
Exit_Here:
Exit Sub
HandleErr:
Select Case Err.Number
Case 3163
Resume Next
Case 3376
Resume Next
|
by: p |
last post by:
WE had a Crystal 8 WebApp using vs 2002 which we upgraded to VS2003. I also
have Crystal 9 pro on my development machine. The web app runs fine on my
dev machine but am having problems deploying....
|
by: Manuel |
last post by:
I'm trying to compile glut 3.7.6 (dowbloaded from official site)using
devc++.
So I've imported the glut32.dsp into devc++, included manually some
headers, and start to compile.
It return a very...
|
by: bazzer |
last post by:
hey,
im trying to access a microsoft access database from an ASP.NET web
application in visual basic 2003.NET. i get the following error when i
try running it:
Server Error in...
|
by: developer |
last post by:
Hi All
I have made a .NET project.
the files included are borland c++ files that i am migrate to VC++ .NET
I am using Microsoft Visual C++ .NET 2003.
the compilation goes through properly,...
|
by: mchuc7719 |
last post by:
Hello,
I have a Vb.Net 2005 ClassLibrary, when I try to compile using MSBee, only
get errors.
Before I to run the command line, I open in notepad the .vbproj and I was
add the next line:
...
|
by: hyperpau |
last post by:
Before anything else, I am not a very technical expert when it comes to VBA coding.
I learned most of what I know by the excellent Access/VBA forum from bytes.com (formerly thescripts.com).
Ergo, I...
|
by: hyperpau |
last post by:
Before anything else, I am not a very technical expert when it comes to VBA coding.
I learned most of what I know by the excellent Access/VBA forum from bytes.com (formerly thescripts.com).
Ergo, I...
|
by: taylorcarr |
last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
|
by: Charles Arthur |
last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
|
by: aa123db |
last post by:
Variable and constants
Use var or let for variables and const fror constants.
Var foo ='bar';
Let foo ='bar';const baz ='bar';
Functions
function $name$ ($parameters$) {
}
...
|
by: ryjfgjl |
last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
|
by: emmanuelkatto |
last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud.
Please let me know.
Thanks!
Emmanuel
|
by: nemocccc |
last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
|
by: Sonnysonu |
last post by:
This is the data of csv file
1 2 3
1 2 3
1 2 3
1 2 3
2 3
2 3
3
the lengths should be different i have to store the data by column-wise with in the specific length.
suppose the i have to...
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
|
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers,...
| |