How to trim the white space around a string in C program


 
Thread Tools Search this Thread
Top Forums Programming How to trim the white space around a string in C program
# 1  
Old 08-31-2005
How to trim the white space around a string in C program

I am coding a C program to read a plain text file. There are a lot of blank fields or a string with white spaces. I want to know is there such a function called trim() in C to clean the white space around a string? Or some other way can do this efficiently? Thanks.
# 2  
Old 09-01-2005
MySQL

writing your own will be as efficient as provided Smilie

char *trim(char *str)
{
char ptr[strlen(str)+1];
int i,j=0;
for(i=0;str[i]!='\0';i++)
{
if (str[i] != ' ' && str[i] != '\t')
ptr[j++]=str[i];
}
ptr[j]='\0'
str=ptr;
}

though written C code after long long time, and its not tested one too... but it left me in good mood.

happy programming!!! Smilie


Rishi
# 3  
Old 09-06-2005
Hi

this is only a part,

strip leading and trailing spaces; check for specified patterns

#define SUCCESS 1
#define FAILURE 0

// 0-for space and 1-for digit

// you can have allowable patterns in Patterns Array.


char *Patterns[]={"010", "1", "10", "01"};
char *b=" 1 23456";
char *temp;
int i, j=0, len, prev=-1;
len=strlen(b);
temp=(char*)calloc(10, sizeof(char));
for ( i=0; i<len; i++ )
{
if( b[i] != ' ' )
{
if( prev != 1 )
temp[j++]='1';
}
else
{
if( prev != 0 )
temp[j++]='0';
}
prev = ( b[i] == ' ' ) ? 0 : 1;
}
temp[j]='\0';
for ( i=0; i<=3; i++ )
{
if( strcmp(Patterns[i], temp) == 0 )
{
len=strlen(b);
for ( prev=0, j=0; j<len; j++ )
{
if ( b[j] != ' ' )
temp[prev++]=b[j];
}
temp[prev]='\0';
break;
}
}
# 4  
Old 09-25-2008
yeah, this is a years' old thread; here's a generic pattern that can be used:

Code:
/*----------trim (char) c from right-side of string *p------------------*/
char *strtrim_right( register char *p, register c)
{
    register char *end;
    register int len;

    len = strlen( p);
    while ( *p && len)
    {
        end = p + len-1;
        if( c == *end)
            *end = 0;
        else
            break;
        len = strlen( p);
    }
    return( p);
}

strtrim_left() is left as an exercise to the reader, but you can use the principle here quite readily.
This User Gave Thanks to rmh For This Post:
# 5  
Old 10-09-2008
I should have mentioned that whitespace is considered to be any of the following characters:

0x09 - horizontal tab
0x0a - linefeed
0x0b - vertical tab
0x0c - form feed
0x0d - carriage return
0x20 - space

so keep that in mind when you program for trimming whitespace...
# 6  
Old 10-09-2008
Code:
register char *end;
    register int len;

I don't see a specific reason to see register variables here, which is not guaranteed as well.
# 7  
Old 10-09-2008
You do realize that the register class hints that the declared objects will be accessed frequently, right.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Trim Space

In Shell, I have output of a unix command as test1 test2015 but I want it as test1 test2015 can anyone help me out. Use code tags, thanks. (3 Replies)
Discussion started by: OscarS
3 Replies

2. Shell Programming and Scripting

Putting white Space at the end of the string

Hi Guys, Hope, you all are doing good out there. I am writing a shell script and currrint in need of your help. This is what I need to do; I have position based plain file. One of the fields is 15 character long. I need to fill that field. The problem is that the value is dynamic, it could... (4 Replies)
Discussion started by: singh.chandan18
4 Replies

3. Shell Programming and Scripting

Add white space

hi guys how can i add spacein file name with sed if strings have no space around dash input 19-20 ( 18-19 ) ABC-EFG output after add white space 19 - 20 (18 - 19 ) ABC - EFG thx in advance (2 Replies)
Discussion started by: mhs
2 Replies

4. Shell Programming and Scripting

awk - trim white space from a field / variable

Hi, Consider the data (FS = |): 1| England |end 2| New Zealand |end 3|Australia|end 4| Some Made Up Country |end 5| West Indies|end I want the output to be (i.e. without the leading and trailing white space from $2) England New Zealand Australia Some Made Up Country West... (4 Replies)
Discussion started by: Storms
4 Replies

5. UNIX for Dummies Questions & Answers

filename with white space

our user creates a text file with a white space on the filename. this same file is transfered to unix via automation tool. i have a korn shell script that reads these files on a input directory and connects to oracle database to run the oracle procedures which will load the data from each of the... (2 Replies)
Discussion started by: wtolentino
2 Replies

6. Shell Programming and Scripting

sed + white space

Hi, What sed command (if sed is the right command) can remove ALL white space from my file. I have a csv, except I want to remove all white space between commas and characters. My idea (without testing) sed 's/ //g' Is there a better way? (18 Replies)
Discussion started by: mcclunyboy
18 Replies

7. UNIX for Dummies Questions & Answers

SED with White Space

Dear Members, Suppose i have a variable test which stores a string as below: test='John drives+++++++++a+++++car' now i want to use sed on the above variable and replace + with a white space, so that i get echo $test should give me 'john drives a car' Between... (1 Reply)
Discussion started by: sandeep_1105
1 Replies

8. Shell Programming and Scripting

stripping white space...

Hi All; Having a problem with a file.. the file contains the following data... (a snapshot) 1331F9E9DB7C2BB80EAEDE3A8F043B94,AL7 1DZ,M,50 186FDF93E1303DBA217279EC3671EA91,NG5 1JU,M,24 3783FFAF602015056A8CD21104B1AAAF,CH42 4NQ,M,17 It has 3 columns sepreated by a , the second column... (7 Replies)
Discussion started by: Zak
7 Replies

9. Shell Programming and Scripting

Trim white spaces using awk

Hi, I have a CSV file with footer information as below. The third value is the number of records in the file. Sometimes it contains both leading and trailing white spaces which i want to trim using awk. C,FOOTER , 00000642 C,FOOTER , 00000707 C, FOOTER,... (2 Replies)
Discussion started by: mona
2 Replies

10. Shell Programming and Scripting

How to trim space in output variable ?

Hi , I have a code like this: uid=scott password=tiger database=db01 cat >runid_val.sql<<-EOA SET ECHO OFF SET FEEDBACK OFF SET HEADING OFF SELECT trim(runid_seq.nextval) FROM dual; EXIT EOA echo `cat runid_val.sql` V_RUNID=`sqlplus -s $uid/$password@$database @runid_val.sql`... (5 Replies)
Discussion started by: vj_76
5 Replies
Login or Register to Ask a Question