10-03-2008
filename[0] is the first character of the string. If the string is empty, the first character will be the terminator null byte.
C string-handling functions generally cannot read past a null byte. Your notation " ", `\0` is extremely non-standard, and seems to correspond to a string consisting of a space, followed by a null byte (which is usually not explicitly marked or required; it's the end of string, plain and simple). That string obviously has a length of one.
The C equality operator == does not compare strings in any meaningful way; you need to use a function such as strcmp. (I too thought this was shocking when I was learning C.) You can compare individual single characters (denoted by single quotes) one by one, which is what strcmp basically does in a loop over the strings it compares. Double quotes are used around strings (character arrays).
The C string tutorial which was already pointed out to you once probably explains all of this a lot better. Please read it.
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
How one can measure the length of a string
but not with the help of awk utility
Can we write shell script for the same ? (2 Replies)
Discussion started by: dilipluhar
2 Replies
2. UNIX for Dummies Questions & Answers
Hi all,
pls help me in finding the length of the given string,
do we need to write a code seperately or is there any command??
pls help. (3 Replies)
Discussion started by: vasikaran
3 Replies
3. Shell Programming and Scripting
Hi all,
I have tried the following simple code in ksh. (length.sh)
#! /usr/bin/ksh
var="xxxxxx0987890"
echo stringlength is ${#var}
but this gives me a error saying "length.sh: bad substitution"
Can some one please help me in resolving this. (4 Replies)
Discussion started by: ssgrpid
4 Replies
4. Shell Programming and Scripting
Hi guys, I hope you can help me with my problem.
I have a text file that contains lines like this:
78 ANGELO -809.05
79 ANGELO2 -5,000.06
I need to find all occurences of amounts that are negative and replace them with x's
78 ANGELO xxxxxxx
79... (4 Replies)
Discussion started by: amangeles
4 Replies
5. Shell Programming and Scripting
Hello All,
Plz help me with:
I have a csv file with data separated by ',' and optionally enclosed by "". I want to check each of these values to see if they exceed the specified string length, and if they do I want to cut just that value to the max length allowed and keep the csv format as it... (9 Replies)
Discussion started by: ozzy80
9 Replies
6. UNIX for Dummies Questions & Answers
Hi
lets say i have a variable
output="string"
how can you find the length of the string contained in this variable? i guess "wc" cannot be used. its only for files. (8 Replies)
Discussion started by: silas.john
8 Replies
7. UNIX for Dummies Questions & Answers
HI
In my script, i am reading the input from the user and want to find the length of the string.
The input may contain leading spaces. Right now, when leading spaces are there, they are not counted.
Kindly help me
My script is like below. I am using the ksh.
#!/usr/bin/ksh
echo... (2 Replies)
Discussion started by: dayamatrix
2 Replies
8. Shell Programming and Scripting
let image that we have string:
QQQQQQQ:ABCDE:FFFFFF:GGGGG
in second field can be 0 or 5 characters
if A exist i need set variable ex: VAR=yes
if B exist i need set variable ex: VAR1=yes
if C exist i need set variable ex: VAR2=yes
etc ...
if second field is empty no variable to set
if... (4 Replies)
Discussion started by: vikus
4 Replies
9. Shell Programming and Scripting
Hi All,
One of my source file is having Date column and the format of the column is YYYY-MM-DD. As per my business logic I have to check if the date format either YYY-MM-DD or YYYY-M-DD. If any records are in this format then I have print all the records and send those invalid records through... (4 Replies)
Discussion started by: suresh_target
4 Replies
10. Shell Programming and Scripting
I have this script which is very easy:
file=`echo 01114`
echo $file
01114
then I ran this
if ; then echo "yes";fi
it returned yes even though there are only 5 digits there
So then I tried
file=`echo abcd`
echo $file
abcd
if ]; then echo "yes";fi
if ]; then echo "yes";fi
It... (2 Replies)
Discussion started by: newbie2010
2 Replies
LEARN ABOUT CENTOS
sd_id128_from_string
SD_ID128_TO_STRING(3) sd_id128_to_string SD_ID128_TO_STRING(3)
NAME
sd_id128_to_string, sd_id128_from_string - Format or parse 128-bit IDs as strings
SYNOPSIS
#include <systemd/sd-id128.h>
char* sd_id128_to_string(sd_id128_t id, char s[33]);
int sd_id128_from_string(const char* s, sd_id128_t* ret);
DESCRIPTION
sd_id128_to_string() formats a 128-bit ID as a character string. It expects the ID and a string array capable of storing 33 characters. The
ID will be formatted as 32 lowercase hexadecimal digits and be terminated by a NUL byte.
sd_id128_from_string() implements the reverse operation: it takes a 33 character string with 32 hexadecimal digits (either lowercase or
uppercase, terminated by NUL) and parses them back into a 128-bit ID returned in ret. Alternatively, this call can also parse a
37-character string with a 128-bit ID formatted as RFC UUID.
For more information about the "sd_id128_t" type see sd-id128(3). Note that these calls operate the same way on all architectures, i.e. the
results do not depend on endianness.
When formatting a 128-bit ID into a string, it is often easier to use a format string for printf(3). This is easily done using the
SD_ID128_FORMAT_STR and SD_ID128_FORMAT_VAL() macros. For more information see sd-id128(3).
RETURN VALUE
sd_id128_to_string() always succeeds and returns a pointer to the string array passed in. sd_id128_from_string returns 0 on success, in
which case ret is filled in, or a negative errno-style error code.
NOTES
The sd_id128_to_string() and sd_id128_from_string() interfaces are available as a shared library, which can be compiled and linked to with
the "libsystemd-id128" pkg-config(1) file.
SEE ALSO
systemd(1), sd-id128(3), printf(3)
systemd 208 SD_ID128_TO_STRING(3)