"Pascal Obry"
writes:
> Tarjei T. Jensen a �crit dans le message <8eonat$sqj3@ftp.kvaerner.com>...
> >
> >C has only one string type. It works reasonably well. Probably the most
>
> Sorry but to me C has no string type. It has "char *" which is a pointer to
> some
> memory space! The consequence here is that there is no operator available !
>
It's a pointer to an *array* of characters. Or a string could *be* an
array of charcters. Sounds familiar? The difference is that the C
standard library assumes that strings are null-terminated.
> Even to compare two strings you have to write:
>
> if (strcmp (name1, name2) == 0) {
> ...
> }
>
> I do prefer:
>
> if name1 = name2 then
> ...
> end if;
>
> Pascal.
>
If you are complaining about the need to test against 0, the reason is
here:
strcmp(), strncmp()
The strcmp() function compares two strings byte-by-byte,
according to the ordering of your machine's character set.
The function returns an integer greater than, equal to, or
less than 0, if the string pointed to by s1 is greater
than, equal to, or less than the string pointed to by s2
respectively. The sign of a non-zero return value is deter-
mined by the sign of the difference between the values of
the first pair of bytes that differ in the strings being
compared. The strncmp() function makes the same comparison
but looks at a maximum of n bytes. Bytes following a null
byte are not compared.
I agree that a comparison operator looks nicer, but in practice it
does not really matter. I find that the C string library functions are
fairly complete, and works well.
>
> --|------------------------------------------------------
> --| Pascal Obry Team-Ada Member
> --| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE
> --|------------------------------------------------------
> --| http://perso.wanadoo.fr/pascal.obry
> --|
> --| "The best way to travel is by means of imagination"
>
>
>
--
E pluribus Unix