Click to See Complete Forum and Search --> : array character to character


winsonlee
March 7th, 2004, 07:51 AM
#include <stdio.h>
#include <string.h>

main()
{

const char *temp="hello";
const char *string="how";

printf("%d",strcmp(temp[0],string[0]));

}



The code gave me the following warning msg.

c:\documents and settings\winson\desktop\data structure\forum.c(10) : warning C4047: 'function' : 'const char *' differs in levels of indirection from 'const char '
c:\documents and settings\winson\desktop\data structure\forum.c(10) : warning C4024: 'strcmp' : different types for formal and actual parameter 1
c:\documents and settings\winson\desktop\data structure\forum.c(10) : warning C4047: 'function' : 'const char *' differs in levels of indirection from 'const char '
c:\documents and settings\winson\desktop\data structure\forum.c(10) : warning C4024: 'strcmp' : different types for formal and actual parameter 2

I would like to compare some of the character between two strings.

I would like to know how i can solved this problem. For your information, i would like the solution in C and not C++. Thanks

NoHero
March 7th, 2004, 08:02 AM
printf("%d",strcmp(&temp[0],&string[0]));


or simply


printf("%d",strcmp(temp,string));


ng NoHero

Paul McKenzie
March 7th, 2004, 08:08 AM
Originally posted by winsonlee

printf("%d",strcmp(temp[0],string[0]));


temp[0] and string[0] are single char's, they are not pointer to const char. That is why you are getting the warning. You would note that this won't give you a warning.

printf("%d",strcmp(temp, string));

Note the difference?

I would like to compare some of the character between two strings. I would like to know how i can solved this problem. For your information, i would like the solution in C and not C++. Thanks

if ( temp[0] == string[0] )

You compare char's just like you compare int's, float's, long's or double's -- use ==.

If you want to compare an array of char with another array of char, then you must either write code that compares character by character, or use a function such as strcmp() or memcmp().

Regards,

Paul McKenzie