Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将代码拆分为函数后,它不会';我不能正常工作。C程序设计_C_Function - Fatal编程技术网

将代码拆分为函数后,它不会';我不能正常工作。C程序设计

将代码拆分为函数后,它不会';我不能正常工作。C程序设计,c,function,C,Function,我试图将这段小代码拆分成函数,但我遇到了麻烦,代码应该显示单词是否为anagram。如果我将所有内容都放到main中,它工作得很好,但现在我将其拆分成函数,它显示所有单词都不是anagram 我想问题出在getWords函数中,在它获取单词的循环中。你们可能知道我在哪里搞砸了。提前感谢。:) #包括 #包括 #包括 void getWords(字符*第一,字符*第二,整数*字母) { int i=0,sum=0; printf(“输入第一个单词:”); 做 { //我想问题就在这下面 第一个[i

我试图将这段小代码拆分成函数,但我遇到了麻烦,代码应该显示单词是否为anagram。如果我将所有内容都放到main中,它工作得很好,但现在我将其拆分成函数,它显示所有单词都不是anagram

我想问题出在getWords函数中,在它获取单词的循环中。你们可能知道我在哪里搞砸了。提前感谢。:)

#包括
#包括
#包括
void getWords(字符*第一,字符*第二,整数*字母)
{
int i=0,sum=0;
printf(“输入第一个单词:”);
做
{
//我想问题就在这下面
第一个[i]=getchar();
if(isalpha(第一[i]))
字母表[toupper(first[i])-'A']+=1;
i++;
}while(第一个[i-1]!='\n');
printf(“输入第二个单词:”);
i=0;
做
{
//这里呢
第二个[i]=getchar();
if(isalpha(第二[i]))
{
字母表[toupper(第二[i])-'A']-=1;
}
i++;
}while(second[i-1]!='\n');
}
无效校验表(整数和,整数字母[26])
{
int i;
对于(i=0;i
现在
first
指向数组的最后一个+1元素,该元素不是您想要修复的。数组
first
的有效索引是
0-19

getWords(first, second, alphabet);

好的,你已经在调试器中完成了代码吗?因此,这不是学习正确调试技能的替代品。是的,没有警告没有错误
&first[20]
不会做你认为它会做的事情。'getWords(&first[20],&second[20],&alphabet[26]);这些参数指向数组的末尾:(我认为函数调用应该是
getWords(first,second,alphabet)
,因为它们都是指针。另外,当你调用
first[20]
时,你试图得到数组中不存在的第20个值。
first[19]
是数组的最后一个元素。
char *first = &first[20];
getWords(first, second, alphabet);