hi people,
i am having some problems, perhaps understanding about how dynamic memory allocation works with pointers and arrays.
Im trying to get the user to input the size of the string in my program and allocates a certain amount of memory to hold the string of the size.
Next, i am going to ask the user to input a string which must consists of only M, U, I. Im going to put that into my input array.
The problem now is how am i going to reference the memory pointer to the input array ?
Also im having a problem with functions too. My isaMUstring function has to return a 1, if the user input correctly ( only M, U, I) and a 0 if otherwise. I can't seem to get the concept of getting the return value of the function to work in my main function.
If i can get the the return value of my function, i am able to perform other task like if the function return a 1, i would print "Correct", if otherwise, i would print "Incorrect".
I have tried
if( isaMUstring( 1 ) ){
do someting}
in the main.
but it doesn't work.
Could someone offer some help on the above 2 problems?
Below is a sample of my code.
Thanks in advance.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int isaMUstring( const char *string );
int main(){
int size;
char input[20];
char *ptr;
printf("Enter the size of string.");
scanf("%d",&size);
ptr = (char *)malloc((size +1) * sizeof(char *));
if( ptr) {
printf("Enter a character string(consist of 'M', 'I', 'U' only) :\n");
scanf("%s",&input);
isaMUstring( input );
}
return 0;
}
int isaMUstring( const char *string ) {
const char *cha1 = "M";
const char *cha2 = "I";
const char *cha3 = "U";
int a;
a = 0;
if( strpbrk( string, cha1) != NULL) {
a += 1;
}
if( strpbrk( string, cha2) != NULL) {
a += 1;
}
if( strpbrk( string, cha3 ) != NULL) {
a += 1;
}
if( a == 3 ) {
printf("Correct\n");// return 1;
}
else {
printf("Wrong\n");//return 0;
}
}
cross posted in : http://cboard.cprogramming.com/newthread.php?do=newthread&f=4#
<< moderator edit: fixed code tags -- and thanks for mentioning the cross-post >>