C 程序不工作(编译问题)
您好,我在编译过程中遇到了一个小问题 因此,我的程序中的问题是:C 程序不工作(编译问题),c,string,C,String,您好,我在编译过程中遇到了一个小问题 因此,我的程序中的问题是: 括号(str1);-参数太少,无法调用函数 空括号(str,len)-“括号”的类型冲突 纽约代码- #include <stdio.h> #include <stdlib.h> #include <string.h> void brackets(char str[], int len); int main() { char str[99]; int len; printf("enter
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void brackets(char str[], int len);
int main()
{
char str[99];
int len;
printf("enter Mathematical exercise: \n");
gets(str);
len = srtlen(str);
brackets(str1);
return(0);
}
void brackets(str,len)
{
char str1[99];
int i,j = 0;
for(i = 0; i < len; i++)
{
if (str[i] == '(')
{
i++;
while(str[i] != ')')
{
str1[j] = str[i];
i++;
j++;
}
}
}
printf("%s\n",str1);
}
#包括
#包括
#包括
空括号(字符str[],整数len);
int main()
{
char-str[99];
内伦;
printf(“输入数学练习:\n”);
获取(str);
len=srtlen(str);
括号(str1);
返回(0);
}
空括号(短括号、长括号)
{
char-str1[99];
int i,j=0;
对于(i=0;i
我很想知道这些错误是怎么产生的,我该如何安排这个程序才能工作。谢谢你的改变
void brackets(str,len)
到
你的函数调用应该是括号(str,len)代码>。也会改变
len = srtlen(str); // Spelling mistake.
到
你的函数括号需要两个参数,所以你需要给他两个:
括号(str1)
必须成为
括号(str1,len) 您将方括号函数定义为接受两个参数,但只传递一个。也通过第二个 对于第二个错误,如果没有为函数参数提供类型,编译器将假定它的类型为int
。由于第一个参数已声明为char[]
类型,因此声明(原型)与函数定义之间存在不匹配
至于第一个错误,当您声明一个函数接受N个参数时,您需要使用N个参数调用它。异常情况是函数声明采用了。这是您的问题:括号(str1)代码>
您仅使用一个参数调用了方括号
,但您将其定义为:
void brackets(char str[], int len);
您需要传递一个int作为第二个参数。代码中似乎存在多个错误
从main开始
您没有在main中声明str1
,而是在括号中使用它(str1)
。我想你说的是str
,因为你声明了charstr[99]代码>
因此,通过括号(str)进行更改代码>
另外空括号(str[],len)
函数未指定函数参数的数据类型请将其更改为空括号(char str[],int len)
同样在mainlen=srtlen(str)代码>该srtlen
无效,但将其设置为len=strlen(str)代码>
最后一次调用括号(str1)代码>但是括号
需要两个参数,所以请通过括号(str,len)在main中进行更改代码>
在上面的更改之后,您的代码现在是干净的,没有错误,如下所示
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void brackets(char str[], int len);
int main()
{
char str[99];
int len;
printf("enter Mathematical exercise: \n");
gets(str);
len = strlen(str);
brackets(str,len);
return(0);
}
void brackets(char str[],int len)
{
char str1[99];
int i,j = 0;
for(i = 0; i < len; i++)
{
if (str[i] == '(')
{
i++;
while(str[i] != ')')
{
str1[j] = str[i];
i++;
j++;
}
}
}
printf("%s\n",str1);
}
#包括
#包括
#包括
空括号(字符str[],整数len);
int main()
{
char-str[99];
内伦;
printf(“输入数学练习:\n”);
获取(str);
len=strlen(str);
括号(str,len);
返回(0);
}
空括号(字符str[],整数len)
{
char-str1[99];
int i,j=0;
对于(i=0;i
将我的答案与haccks的答案结合起来:)错误消息中确实有线索。。。。。
void brackets(char str[], int len);
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void brackets(char str[], int len);
int main()
{
char str[99];
int len;
printf("enter Mathematical exercise: \n");
gets(str);
len = strlen(str);
brackets(str,len);
return(0);
}
void brackets(char str[],int len)
{
char str1[99];
int i,j = 0;
for(i = 0; i < len; i++)
{
if (str[i] == '(')
{
i++;
while(str[i] != ')')
{
str1[j] = str[i];
i++;
j++;
}
}
}
printf("%s\n",str1);
}