求: c语言insert问题
题目是:读取txt文件中的字符串,如果是数组word,special和name中的,输出字符串和对应的数值(例如:BEGIN(0)),
如果在以上数组中找不到此字符串,就把此字符串放到name数组中的最后一位,然后再给一个对应的数值
#include<stdio.h>
#include<conio.h>
#include<string.h>
int key = 0;
char word[][50][50] = {{"BEGIN", "END", "CONST", "ARRAY", "INTEGER", "BOOLEAN", "PROC", "VAR", "SKIP", "READ", "WRITE", "CALL", "IF", "FI", "DO", "OD", "FALSE", "TRUE", "FLOAT"},{"0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18"}};
char special[][50][50] = {{"+", "-", "*", "/", ",", "(", ")", "<=", "<", ";", "=", "~=", "$", "&", "|", "[", "]", ">=", ">", ":=", ".", "->"},{"19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40"}};
char name[][100][100]={{"a"},{"41"}};
int searchSymbol(char[], char[][50][50]);
int insertSymbol(char nam[], char nameList[][100][100]);
int main()
{
char s[50][50];
int t = 0, p;
int i, j, k;
char sbexpr[50];
FILE *f = fopen("input.txt","r");
while(fscanf(f,"%s", s[t]) != EOF) t++;
for (i = 0; i <t; i++) {
for (k = 0; s[i][k] != '\0'; k++) {
sbexpr[k] = s[i][k];
}
sbexpr[k] = '\0';
if( searchSymbol(sbexpr, special) ){
continue;
}
else if(searchSymbol(sbexpr, word) ){
continue;
}
else if(searchSymbol(sbexpr, name) ){
continue;
}
else if(insertSymbol(sbexpr, name) ) {
continue;
}
}
return 0;
}
int searchSymbol(char expr[], char check[][50][50]) {
int i;
for (i = 0; i <50 ; i++) {
if (strcmp(expr, check[0][i]) == 0) {
printf("\n %s(%s)", check[0][i],check[1][i]);
return 1;
}
}
return 0;
}
int insertSymbol(char nam[], char nameList[][100][100]){
int i,j;
for(j=0; j<100; j++){
for(i=0; nameList[0][j][i]!='\0'; i++){
nameList[0][j][i]=nam[i];
return i;
break;
}
}
printf("\n %s(%s)", nameList[0][1],nameList[1][1]);
// printf("%s",nameList);
return 0;
}