strcmp

Am I correct that strcmp is equivalent (and safe) for literals?

We all know the trouble overflows can cause, and this is why strn* exist - and most of the time they make sense. However, I have seen code which uses strncmp to compare commandline parameters like so: if(... strncmp(argv[i], "--help", 6) == 0 Now, I would have thought that this is unnecessary and perhaps even dangerous (for longer par...

comparing using strcmp

Hello, compiling with gcc C99 I am trying to compare 2 string using string compare. However, I seem to be getting a stack dump on the strcmp line. **attribute will contain these, so I am looking for frametype. [name] [time] [type] [time] [name] [callref] [type] [string] [name] [port] [type] [int16] [name] [frametype] [type] [int16] ...

String Compare not working in Visual C++ 2005

Hi There, If get a gring from the registry and it correctly displays when I place it in a message box. ::MessageBoxW(0, (LPCWSTR)achValue, _T("Found"), MB_YESNO); The value is stored in archValue which is a DWORD. What I want to do is compare it to the following string "2.0.7045.0" but strcmp fails to work for me. Any ideas on how to d...

strcmp not working

Hi, I know this may be a totally newbie question (I haven't touched C in a long while), but can someone tell me why this isn't working? printf("Enter command: "); bzero(buffer,256); fgets(buffer,255,stdin); if (strcmp(buffer, "exit") == 0) return 0; If I enter "exit" it doesn't enter the if, does it have to do with the length of ...

How do I achieve something like MySQL's latin1_general_ci collation in PHP?

I am writing a string compare function to sort medical terms that often contain special accented characters from many different European languages, and I need to somehow achieve a collation similar to MySQL's latin1_general_ci. First, I'm doing some basic munging on the strings to remove spaces, quotes, hyphens, parentheses, etc. The pr...

Comparing strings in C - strcmp

I'm having trouble comparing strings in C (with which I am fairly new to). I have socket on this server application waiting to accept data from a client. In this particular portion of my program I want to be able to execute a MySQL query based on the data received from the client. I want to be able to know when the received data has the ...

Is there a JavaScript strcmp()?

Can anyone verify this for me? JavaScript does not have a version of strcmp(), so you have to write out something like: ( str1 < str2 ) ? -1 : ( str1 > str2 ? 1 : 0 ); As this question is really just me complaining, I wouldn't normally waste your time with it, but I wasted 30 minutes looking for such a func...

Problem with hex literal in string comparison

I'm reading in an NES ROM file, where the first four bytes are "\x4e\x45\x53\x1a", or NES\x1a. In my actual code, the given file can be arbitrary, so I want to check to make sure this header is here. However, I'm running into some trouble, which the following code demonstrates: #include <stdio.h> #include <string.h> int main() { FILE ...

C - strtok and strcmp

I am having a bit of trouble using strtok with strcmp. //Handles the header sent by the browser char* handleHeader(char *header){ //Method given by browser (will only take GET, POST, and HEAD) char *method,*path, *httpVer; method = (char*)malloc(strlen(header)+1); strcpy(method,header); method = ...

C++ strcmp array

Hi I am using strcmp as shown below. I am debugging the values and which are coming same but still not getting that condition true. const char opcode_read[2] = {'0', '1'}; rc = recvfrom(s, blk_receive_full, sizeof (blk_receive_full), 0,(struct sockaddr FAR *)&sin, &fromlength); if(rc == -1){ printf("failed: recvfrom, \n No data rec...

is this a good way to do a strcmp to return false when strings are empty

I want another condition --still maintaining a fast execution time but safer-- where i return false if either or both strings is empty: int speicial_strcmp(char *str1, char* str2 ) { if(*str1==*str2 =='\0') return 0; return strcmp(str1,str2); } ...

Problem checking the name of a file in php

I am writing a PHP page to convert an uploaded file to XML. I only want to convert the news file to XML. The only file that ever needs to be converted is news.htm. I have narrowed my problem down to this if statement. What is wrong with it? $fileName = basename( $_FILES['uploaded']['name'] ); if( strcmp( $fileName, "news.htm") == 0 ) (...

Is there any safe strcmp?

I made a function like this: bool IsSameString(char* p1, char* p2) { return 0 == strcmp(p1, p2); } The problem is that sometimes, by mistake, arguments are passed which are not strings (meaning that p1 or p2 is not terminated with a null character). Then, strcmp continues comparing until it reaches non-accessible memory and cras...

error when I call strcmp Invalid conversion from 'int' to 'const char*'

I'm using strcmp to compare character arrays in c++, but I get the following error for every occurrence of strcmp: error: invalid conversion from 'int' to 'const char*' followed by: error: initializing argument 2 of 'int strcmp(const char*, const char*)' I've include string, string.h, and stdio.h and here is my code, thanks to all who ...

strcmp struct in c - different elements

I have a struct member that holds lots of string elements. What I want is to iterate the whole member of the struct and count only different elements (diff last names). struct log { char *last; }; ... struct log *l l->last = last_name; // loading *last member with data coming from last_name var ... What would be a good way to com...

C++ - strcmp() does not work correctly?

There's something really weird going on: strcmp() returns -1 though both strings are exactly the same. Here is a snippet from the output of the debugger (gdb): (gdb) print s[i][0] == grammar->symbols_from_int[107][0] $36 = true (gdb) print s[i][1] == grammar->symbols_from_int[107][1] $37 = true (gdb) print s[i][2] == grammar->symbols_fr...

Comparing string - woes in PHP

I want to allow the user to enter a coupon number in order to get a discount. After the coupon number is entered and submitted, the page reloads withe a tick showing that they have entered a correct amount. The way I'm trying to do this is displaying the tick if the coupon amount is not £0.00. But the string comparison doesn't seem to ...

strcmpi renamed to _strcmpi?

In MSVC++, there's a function strcmpi for case-insensitive C-string comparisons. When you try and use it, it goes, This POSIX function is deprecated beginning in Visual C++ 2005. Use the ISO C++ conformant _stricmp instead. What I don't see is why does ISO not want MSVC++ to use strcmpi, and why is _stricmp the preferred way, and w...

Help! strcmp is lying to me when fed strtok results.

Hey Folks, strcmp, when fed the results of strtok, in the following code seems to be blatantly lying to me. int fSize; char * buffer=NULL; char * jobToken = "job"; char * nextToken=NULL; job * curJob=NULL; struct node * head=NULL; struct node * parseList(FILE* file){ fseek(file,0,SEEK_END); fSize=ftell(file); buffer = (cha...

fgets and strcmp [C]

I'm trying to compare two strings. One stored in a file, the other retrieved from the user (stdin). Here is a sample program: int main() { char targetName[50]; fgets(targetName,50,stdin); char aName[] = "bob"; printf("%d",strcmp(aName,targetName)); return 0; } In this program, strcmp returns a value of -1 when ...