954,535 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

How How How???!!!!

HOw do you compare 2 strings without using strcmp...???

would u please give me an example and how it will work..

THNK YOU Very Much!!:S:X

rapperhuj
Light Poster
40 posts since Apr 2007
Reputation Points: 7
Solved Threads: 0
 

you could try implementing your own version of strcmp?

strcmp() maintains two pointers to char, one for the first string, one for the second - it compares the values of what the pointers point to (ie the value of the char currently being pointed to) - if this value is zero (i.e. equal) then it increments the pointers and compares the next pair of bytes.

otherwise it returns with either a positive or negative value.

as far as I know strcmp() will return positive or negative based only on the first pair of bytes.

does that help?

wise_monkey
Newbie Poster
3 posts since Apr 2007
Reputation Points: 10
Solved Threads: 0
 

Of course the other way is to use STL string objects and just use the overloaded logic operators built into the class, but I don't think that's quite what your question meant.

Lerner
Nearly a Posting Maven
2,382 posts since Jul 2005
Reputation Points: 739
Solved Threads: 396
 
Salem
Posting Sage
Team Colleague
11,531 posts since Dec 2005
Reputation Points: 5,862
Solved Threads: 953
 

[qoute]SIr thnk you for a wonderful advice..


Ahmm.. briefly how will i operate the program correctly if the output of my program is always at the first line only of my database...

example... my problem is i will type a country code:

OUTPUT:

Enter Country Code : US (e.g.)

/* the answer will be like this.. */

United States: Digicel, Movistar and other telephone companies in that country,,

MY OUTPUT:

Enter Country Code: US(e.g.)

Afghanistan //this is always the reply of my input..

:'(

(at my database)

hmmm. it is something like this...

AF - Afghanistan
AX- Aland islands
......
PH - Philippines: Cure, Globe, Smart, Sun
US - United States: Digicel, Movistar etc...

:(


/*my program is like this..
Hope u can help me..*/:*:X

#include
#include
#include
#include
using namespace std;
int main()
{
char code[5];
char whole[800];
cout << "\n\n\tType the Country Code: \t\t ";
cin >> code;
FILE *f;
f=fopen("countrycode.csv", "r");
if(f==NULL) cout<< "cant open";
else
{
while(fgets(whole,800,f)!=0)
{
int a=0, i;
char delimeter[]="-\"", who[800][800];
char *huj=strtok(whole, delimeter);
while(huj!=NULL)
{
strcpy(who[a],huj);
if(a++>=sizeof who/ sizeof *who)
{
break;
}
huj=strtok(NULL, delimeter);
}
for (i=0; i

rapperhuj
Light Poster
40 posts since Apr 2007
Reputation Points: 7
Solved Threads: 0
 

It looks like in the loop:

for( i=0; i<a; i++)
{
    if(strcmp(code, who[1])!= 0)
    {
          strcmp(code, who[1]);
          cout << who[1] << endl;
          exit(1);
    }
}


might be your problem - why are you only comparing code with who[1]. If you do that, then yes you will always get "Afghanistan" as your output...
Should who[1] be who[i] perhaps?

Can you explain a bit more what it is your attempting to do?

best wishes
wise_monkey

wise_monkey
Newbie Poster
3 posts since Apr 2007
Reputation Points: 10
Solved Threads: 0
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You