i created program accepts strings , stores them in two-dimensional array, has function searches string(inputted user) in array. whenever run program, stops working when reaches searching part. can point out error?
here's code
#include <stdio.h> #include <string.h> #define maxname 40 #define maxlength 70 int acceptsize() { int sizeof; printf("how many students?"); scanf("%d",&sizeof); return sizeof; } void acceptnames(char names[maxname][maxlength],int size) { int ctr; for(ctr=0; ctr<size; ctr++) { printf("student %d:", ctr+1); scanf("%s",&names[ctr]); } } int searchname(char names[maxname][maxlength], char sname[maxname]){ int ctr2; for(ctr2=0; ctr2<maxname; ctr2++) { if(strcmp(names[ctr2], sname[maxname])==0) { return ctr2; } } return -1; } int main(){ int ctr,size, choice, result; char names[maxname][maxlength], sname[maxlength]; size=acceptsize(); acceptnames(names,size); printf("enter name searched: "); scanf("%s", &sname[maxlength]); result=searchname(names, sname); if(result == -1) printf("match not found."); else printf("match found!"); }
char sname[maxname] // in int searchname()
should've been
char sname[]; // see comment#1 weather-vane
also
if(strcmp(names[ctr2], sname[maxname])==0)
should've been
if(strcmp(names[ctr2], sname)==0) // sname[maxname] not string, sname !!
finally
scanf("%s", &sname[maxlength]);
shoud've been
scanf("%s", sname); // reading string case omit &
and suggestion : use [ fgets ] instead of scanf
use
Comments
Post a Comment