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