字符串逆序输出
本帖最后由 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;
intl, i;
char c;
for (i = 0; i < LENGTH - 1 && (c = getchar()) != EOF && c != '\n'; i++)
{
str = c;
}
if (c == '\n')
{
str = '\n';
i++;
}
str = '\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;
int i;
i = 0;
while (a>=0)
{
t = s;
i++;
a--;
}
for (i = 0; i <= a; i++)
{
printf("%c", t);
}
}
主要是reserve函数好像没有作用,用断点测试,t[]和s[]能正确交换,但是不显示t[]呢。请问是哪里出了问题 什么不显示? wangjeu 发表于 2018-11-10 22:13
什么不显示?
reserve函数没有作用,没有逆序输出字符串 你为什么没有在主调函数前声明你的自定义函数 wangjeu 发表于 2018-11-10 22:23
你为什么没有在主调函数前声明你的自定义函数
主函数第一行就声明了 为什么在c != '\n'之后又 if (c == '\n') 因为在reserve 函数中 a在a--后为0了 i又等于0 所以不进行for循环 你应该再设置一个变量来存a的原值 wangjeu 发表于 2018-11-10 22:58
为什么在c != '\n'之后又 if (c == '\n')
为了测试我把我写的getlinelength函数放到主函数中来了,直接copy的
页:
[1]