I j*_*rn. 1 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, 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);
}
Run Code Online (Sandbox Code Playgroud)
遗憾的是如此模糊,从一个输入输出的样本1234567将是2357那么这个输出反转为7532.
这是你的代码所做的(正如现在所写):
听起来你正在寻找的是:
当你"从字符串中排除字符"时,你创建一个新的字符串,用输入字符串中非主要位置的字符填充.比将修改后的字符串用作reverse()函数的参数.
我毫不怀疑,如果您理解上面的段落,那么修复代码没有问题.
以下是实现您所需要的步骤:
str(正如您目前所做)str250str到str2,是不是在一个"黄金位置"reverse()提供它str2作为参数,而不是(当前)str