c - Searching a string from an array of strings -


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