马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 sgaizxt001 于 2018-11-10 22:35 编辑
先附上代码#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define LENGTH 100
int main(void)
{
void reverse(char s[],int a);
char str[LENGTH];
int l, i;
char c;
for (i = 0; i < LENGTH - 1 && (c = getchar()) != EOF && c != '\n'; i++)
{
str[i] = c;
}
if (c == '\n')
{
str[i] = '\n';
i++;
}
str[i] = '\0';
l = i-1;
printf("the string length is %d\n", l);
reverse(str, l);
system("pause");
}
void reverse(char s[], int a)
{
char t[LENGTH];
int i;
i = 0;
while (a>=0)
{
t[i] = s[a];
i++;
a--;
}
for (i = 0; i <= a; i++)
{
printf("%c", t[i]);
}
}
主要是reserve函数好像没有作用,用断点测试,t[]和s[]能正确交换,但是不显示t[]呢。请问是哪里出了问题
因为在reserve 函数中 a在a--后为0了 i又等于0 所以不进行for循环 你应该再设置一个变量来存a的原值
|