在C语言中,如何将输出从一个函数传递到另一个函数?
我的程序有两个独立的函数,它排除非素数位置,然后保留该位置的输出。除了我遇到的问题之外,目前它没有按照我希望的方式工作,因为第一个函数排除了非素数位置,然后第二个函数使用原始输入并保留它,而不是函数一的输出。我是新来C的,所以请对我宽容一点在C语言中,如何将输出从一个函数传递到另一个函数?,c,function,c-strings,inverse,C,Function,C Strings,Inverse,我的程序有两个独立的函数,它排除非素数位置,然后保留该位置的输出。除了我遇到的问题之外,目前它没有按照我希望的方式工作,因为第一个函数排除了非素数位置,然后第二个函数使用原始输入并保留它,而不是函数一的输出。我是新来C的,所以请对我宽容一点 #include <stdio.h> #include <string.h> void reverse(char[], long, long); int main() { char str[50]; int i, j
#include <stdio.h>
#include <string.h>
void reverse(char[], long, long);
int main()
{
char str[50];
int i, j, k, cnt = 0;
long size;
printf("Enter: ");
scanf("%s", str);
size = strlen(str);
reverse(str, 0, size - 1);
printf(str);
return 0;
}
void reverse(char str[], long index, long size)
{
char temp;
temp = str[index];
str[index] = str[size - index];
str[size - index] = temp;
if (index == size / 2)
{
return;
}
reverse(str, index + 1, size);
}
#包括
#包括
无效反转(字符[],长,长);
int main()
{
char-str[50];
int i,j,k,cnt=0;
长尺寸;
printf(“输入:”);
scanf(“%s”,str);
大小=strlen(str);
相反(str,0,大小-1);
printf(str);
返回0;
}
无效反向(字符str[],长索引,长大小)
{
焦炭温度;
temp=str[index];
str[index]=str[size-index];
str[大小-索引]=温度;
如果(索引==大小/2)
{
回来
}
相反(str,索引+1,大小);
}
抱歉说得这么含糊,输入
1234567
的示例输出将是2357
,然后此输出将转换为7532
,以下是您的代码的功能(如现在编写的):
当您“从字符串中排除字符”时,您将创建一个新字符串,并使用输入字符串中处于非素数位置的字符填充该字符串。然后将修改后的字符串用作
reverse()
函数的参数
我毫不怀疑,如果您理解上述段落,那么修复代码就不会有问题
以下是实现您所需的步骤:
str
(与当前操作相同)str2
str
中的每个字符复制到str2
中未处于“基本位置”的字符reverse()
下面是您的代码所做的(正如现在编写的):
当您“从字符串中排除字符”时,您将创建一个新字符串,并使用输入字符串中处于非素数位置的字符填充该字符串。然后将修改后的字符串用作
reverse()
函数的参数
我毫不怀疑,如果您理解上述段落,那么修复代码就不会有问题
以下是实现您所需的步骤:
str
(与当前操作相同)str2
str
中的每个字符复制到str2
中未处于“基本位置”的字符reverse()
你能再解释一下你的问题吗?在函数
main
中,您根本不会更改str
,因此在reverse
中,您可以使用原始的str
。您能给出一个示例输入和预期的输出吗?我真的不明白你想做什么。排除非素数位置,然后保留输出
——你说的非素数位置是什么意思?可能是输入错误:反转输出?您在函数reverse中更改了原始值。如果你想重复使用原作。您应该复制第一个函数并将其发送给第二个函数。不是真正的C问题,但更多的是“常识”。@Ijustwanttolearn。提示:如果您想通知用户名,请在用户名前使用@
,您能再解释一下您的问题吗?在函数main
中,您根本不会更改str
,因此在reverse
中,您可以使用原始的str
。您能给出一个示例输入和预期的输出吗?我真的不明白你想做什么。排除非素数位置,然后保留输出
——你说的非素数位置是什么意思?可能是输入错误:反转输出?您在函数reverse中更改了原始值。如果你想重复使用原作。您应该复制第一个函数并将其发送给第二个函数。不是真正的C问题,但更多的是“常识”。@Ijustwanttolearn。提示:如果您想通知用户名,请在用户名前使用@
,这正是我正在做的。是的,但在如何传递输入方面遇到了困难。“我知道这很可能是我做错了的傻事。”我想学习。正如他所说的,你过滤并打印它,但你从来没有将它保存到数组中。只需创建一个新数组并将过滤后的字符输入其中,然后将新数组传递给reverse
@wolf Just exercise?可能更糟。OP的用户名是“我只想学习”,所以这显然是一个学习任务。那为什么不帮忙呢?;-)我想现在好多了。我不知道这些限制是否真的存在,但我更喜欢用最简单的方法来解决问题。这正是我正在做的。是的,但正在努力解决如何传递输入的问题。“我知道这很可能是我做错了的傻事。”我想学习。就像他说的那样