?
Solved

Input Of an Unspecified Amount From a User

Posted on 1998-09-27
2
Medium Priority
?
245 Views
Last Modified: 2010-04-15
I am working on a project where the user enters in an unspecified amount of integers.  I havent came up with a good solution.

I can have the user enter the integers using scanf.  Scanf returns the amount of items entered I can use this to determine how much memory to allocate with malloc.  The problem is does scanf only count the valid data
(integers as opposed to characters?).  How would I handle if a character was in the mix of integers?


Am I headed in the right direction on this or does anyoen have a much better way of handling this.

Thanks
Darrell
0
Comment
Question by:larockd
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
2 Comments
 
LVL 1

Accepted Solution

by:
dotand earned 40 total points
ID: 1253087
Yoir best option would be to use a macro like isnum (I think that's the name on Borland C compiler, version 3.1).
If not than write your own, simply check the string until you hit a null and for each char check if it's the ascii range reserved for numbers.

That is, supposing s is the string in question and i an integer declared somewhere else that:


is_num(char *s){
  int i=0;
  while(s[i]){
    if(s[i]<='0' || s[i]<='9')
      return(0);
   }
   return(1);
   }
 }

Running atoi on the returned string won't help because there might be only a prtial conversion if it is a mixed string and no error returned. Better check using this method and then call atoi,
or are you lucky enough to call atol ?  ;-)>.

HTH,
Dotan
0
 
LVL 84

Expert Comment

by:ozo
ID: 1253088
What do you want to happen if a character was in the mix of integers?
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Summary: This tutorial covers some basics of pointer, pointer arithmetic and function pointer. What is a pointer: A pointer is a variable which holds an address. This address might be address of another variable/address of devices/address of fu…
Windows programmers of the C/C++ variety, how many of you realise that since Window 9x Microsoft has been lying to you about what constitutes Unicode (http://en.wikipedia.org/wiki/Unicode)? They will have you believe that Unicode requires you to use…
The goal of this video is to provide viewers with basic examples to understand how to use strings and some functions related to them in the C programming language.
The goal of this video is to provide viewers with basic examples to understand and use conditional statements in the C programming language.
Suggested Courses
Course of the Month9 days, 16 hours left to enroll

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question