Latest LQ Deal: Complete CCNA, CCNP & Red Hat Certification Training Bundle
Go Back > Forums > Non-*NIX Forums > Programming
User Name
Programming This forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.


  Search this Thread
Old 07-04-2002, 01:48 AM   #1
Registered: Apr 2001
Location: Portland, OR
Distribution: Slackware 8
Posts: 82

Rep: Reputation: 15
Unhappy oh the pain, the pain of c

I need to translate this simple perl line into C:
@array = split(/:/, $string);
I know I'm going to need to use strtok, but my problem is that I don't know how big array has to be until I tokenize string, so I can't declare array because I don't know what size to make it. Do I have to parse it twice to find the number of tokens first and to store them second? This seems really inelegant, and I'm sure there's a better way. Can anybody help?
Old 07-04-2002, 06:09 AM   #2
Senior Member
Registered: Dec 2001
Location: The Netherlands
Distribution: Ubuntu
Posts: 1,316

Rep: Reputation: 47
Well your options would be to:

* make an array which is always large enough
* count how many you would need first (probably would need to parse twice)
* use an array which can dynamically resize itself (if you are using c you will have to build your own implementation of that)
Old 07-04-2002, 11:30 AM   #3
Registered: Jul 2002
Location: Chicagoland
Distribution: Gentoo, Ubuntu
Posts: 63

Rep: Reputation: 15
I'm sure you can get creative with the malloc() and realloc() functions. Check them out. I say you break it down like this:

1. malloc() out some memory enough to hold a good amount of data.

2. Create a function that walks through the string and counts the number of words found (excluding the colon-delimiters).

3. Then take that and check if you have to allocate more space.

4. If you need more space, do a realloc() and proceed with your tokenizing.

Good luck


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
Sorry to be a pain, but can someone help please? twirl Programming 5 09-06-2005 05:15 PM
lselinux: pain in the @$$ chrisknight Linux - Software 5 08-25-2004 11:51 AM
What a pain BajaNick General 4 08-30-2003 11:15 PM
The Pain... crichards General 11 02-22-2003 05:19 AM
More pain than its worth?? ewaltonl Linux - General 7 03-06-2001 05:10 PM > Forums > Non-*NIX Forums > Programming

All times are GMT -5. The time now is 07:58 PM.

Main Menu
Write for LQ is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration