这是主要的。
int
main(int argc, char *argv[]) {
char statement[MAX_LINE];
int statement_len;
char type[MAX_LINE];
char var[MAX_LINE];
/* Print the output header comment */
printf(OUTPUT_HEADER, argv[0]);
/* Loop through statements read on stdin */
while ((statement_len = next_statement(statement,MAX_LINE)) > 0) {
printf("%s;\n",statement);
sscanf(statement,"%s %s",type,var);
var_lib_check(type,var);
var_replace(statement,statement_len);
}
return 0;
}
这是发生错误的函数。
void
var_replace(char statement, int statement_len){
int i;
int x;
for (i = 0; i < statement_len; i++){
for (x = 0; x < num_of_var; x++){
if (strcmp(var_library[x],statement[i]) == 0){
printf("hello");
}
}
}
return;
}
错误:
在'{'令牌
之前预期'=',',',';','asm'或'属性'
我该如何解决这个问题?
答案 0 :(得分:0)
您的功能是
void var_replace(char statement, int statement_len){
所以,它期望一个角色成为第一个参数。但你传递的是一个字符串
char statement[MAX_LINE];
var_replace(statement,statement_len);
^
statement is a character array
这是一个问题。然后在你的函数中,你使用
if (strcmp(var_library[x],statement[i]) == 0){
^
but statement is a character, not a string
如果要检查每个字符,请不要使用strcmp()