Thread: new to C...need to eliminate whitespace

  1. #1
    Registered User
    Join Date
    Feb 2009
    Posts
    36

    Question new to C...need to eliminate whitespace

    hello i am new to the programming world and was wondering if anyone could help me out with a problem i am having.....i need to accept keyboard input, and reproduce it after eliminating whitespace unless in "string literal"....so far i am able to print the input but im not quite sure how im supposed to delete the whitespace....here is what i have so far...

    Code:
    #include <stdio.h>
    
    int main()
    {
       int c;
       
       printf("This program eliminates whitespace from an input stream,\n");
       printf("except from within string literals in double quotes.\n");
       printf("\n");
       printf("Type characters, and enter EOF after <enter> to finish:\n");
       
       while ((c = getchar()) != EOF) {
          putchar(c);
    }
       system("pause");
       
       return 0;
    }
    i dont expect anyone to do this for me....but i have a textbook and notes and i just dont understand how to get this done....if anyone could give me any hints i would appreciate it. thanks

  2. #2
    Registered User
    Join Date
    Dec 2006
    Location
    Canada
    Posts
    3,229
    Add one bool variable, in_string_literal. Initialize it to false, and toggle it whenever you see a ".

    In the loop, if c is whitespace and in_string_literal is false, don't print it.

  3. #3
    Registered User
    Join Date
    Feb 2009
    Posts
    36
    im sorry but i dont understand what you are saying...i have only taken 3 classes so far in INTRO to C programming....whats is a bool? and how do i toggle? and how do i say string literal is false? im sorry im probably asking really stupid questions but i just dont understand

  4. #4
    Registered User
    Join Date
    Feb 2009
    Posts
    36
    anyone??

  5. #5
    Registered User
    Join Date
    Dec 2006
    Location
    Canada
    Posts
    3,229
    Wow you are given this assignment after 3 classes? What is your teacher smoking .

    That aside,

    Code:
    bool in_string_literal = false;
    a bool (http://en.wikipedia.org/wiki/Boolean_datatype) is a type (like char or int) that can only have 2 states, true and false.

    Toggle means set it to true if it's false, and set it to false if it's true.
    The easiest way to do that is with an exclusive-or
    Code:
    in_string_literal ^= 1;
    But I am guessing you haven't learned that, yet.
    http://www.cprogramming.com/tutorial...operators.html
    (it's probably a little too advanced for you at this stage, don't worry about it)

    Just use an if, then
    Code:
    if (in_string_literal) {
         in_string_literal = false;
    } else {
         in_string_literal = true;
    }
    how do i say string literal is false?
    Code:
    if (in_string_literal == false)
    or
    Code:
    if (!in_string_literal)

  6. #6
    Hurry Slowly vart's Avatar
    Join Date
    Oct 2006
    Location
    Rishon LeZion, Israel
    Posts
    6,788
    this is pure C
    why is it on the C++ board?
    All problems in computer science can be solved by another level of indirection,
    except for the problem of too many layers of indirection.
    – David J. Wheeler

  7. #7
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    Quote Originally Posted by vart
    this is pure C
    why is it on the C++ board?
    Indeed, so I have moved it to the C programming forum.
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  8. #8
    Registered User
    Join Date
    Oct 2008
    Location
    TX
    Posts
    2,059
    Just curious if you also need to figure out how to separate a string literal from a line with an embedded double-quote as in.
    => this is a line with an " embedded double-quote
    => "this is a string literal"

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Searching for a string in txt file with whitespace!
    By invisible_wall in forum C++ Programming
    Replies: 0
    Last Post: 03-29-2009, 10:02 PM
  2. Replies: 10
    Last Post: 06-20-2006, 03:07 PM
  3. Removing Leading & Trailing Whitespace
    By EvilGuru in forum C Programming
    Replies: 11
    Last Post: 12-01-2005, 02:59 PM
  4. Regaurding SetConsoleTitle() and whitespace.
    By Tronic in forum Windows Programming
    Replies: 4
    Last Post: 03-26-2004, 09:02 PM
  5. Whitespace and scanf()
    By Procyon in forum C Programming
    Replies: 1
    Last Post: 01-05-2002, 01:55 AM