You're declaring an array of
char *
, that is, an array of strings, rather than a single string. You probably want:char number[MAXSIZE];
Your
scanf
format string is wrong. If you want to read a string, you should use%s
.%c
reads only a single character.Your
scanf
parameter is wrong - passnumber
itself (or&number[0]
if you prefer), not&number
.The parameter you're passing to
atoi_me
is wrong. Call it withnumber
(or equivalently&number[0]
), not*number
.
Putting all of that together, you should have a main
routine something like this:
int main(void)
{
char number[MAXSIZE];
int num;
printf("Please enter a number: ");
scanf("%s", number);
num = atoi_me(number);
printf("%d\n", num);
return 0;
}
Editorial notes: You have a potential buffer overflow with the scanf
line. You'd be better off using a function like fgets(3)
that makes it easy to protect against that kind of problem.
atoi(3)
also traditionally supports negative numbers (with a leading -
) and an optional leading +
for positive numbers, which your implementation doesn't handle.