如何在 C 中将一个函数的输出传递给另一个函数?
How to pass output from one function to another in C?
我的程序有两个独立的函数,它排除非主要位置,然后保留输出。除了我遇到的问题是目前它没有按照我想要的方式工作,因为第一个函数排除了非主要位置,然后第二个函数使用原始输入并保留它而不是函数的输出一。我是 C 的新手,所以请放轻松。
#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);
}
抱歉这么含糊,输入 1234567
的示例输出将是 2357
然后此输出反转为 7532
。
这是您的代码的作用(正如现在编写的那样):
- 从控制台输入字符串
- 打印出 "prime position" 中的每个字符(2、3、5、7 等)而不修改字符串
- 反转原始的、未修改的字符串
- 打印出反转的字符串
我觉得你要找的是以下内容:
当您 "exclude characters from a string" 时,您创建了一个 新字符串 ,您用输入字符串中位于 non-prime 位置的字符填充该字符串。比您使用修改后的字符串作为 reverse()
函数的参数。
我毫不怀疑,如果您理解了上面的段落,那么修复您的代码就没有问题了。
以下是实现您需要的步骤:
- 将字符串输入
str
(如您目前所做的那样)
- 引入一个新字符串
str2
与原始字符串50
大小相同
- 在你的循环中将
str
中的每个字符复制到 str2
中,但不在 "prime position" 中
- 调用
reverse()
提供 str2
作为参数,而不是(当前)str
我的程序有两个独立的函数,它排除非主要位置,然后保留输出。除了我遇到的问题是目前它没有按照我想要的方式工作,因为第一个函数排除了非主要位置,然后第二个函数使用原始输入并保留它而不是函数的输出一。我是 C 的新手,所以请放轻松。
#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);
}
抱歉这么含糊,输入 1234567
的示例输出将是 2357
然后此输出反转为 7532
。
这是您的代码的作用(正如现在编写的那样):
- 从控制台输入字符串
- 打印出 "prime position" 中的每个字符(2、3、5、7 等)而不修改字符串
- 反转原始的、未修改的字符串
- 打印出反转的字符串
我觉得你要找的是以下内容:
当您 "exclude characters from a string" 时,您创建了一个 新字符串 ,您用输入字符串中位于 non-prime 位置的字符填充该字符串。比您使用修改后的字符串作为 reverse()
函数的参数。
我毫不怀疑,如果您理解了上面的段落,那么修复您的代码就没有问题了。
以下是实现您需要的步骤:
- 将字符串输入
str
(如您目前所做的那样) - 引入一个新字符串
str2
与原始字符串50
大小相同 - 在你的循环中将
str
中的每个字符复制到str2
中,但不在 "prime position" 中
- 调用
reverse()
提供str2
作为参数,而不是(当前)str