C语言:编写一个程序实现从键盘接收一个字符串,并将这个字符逆序输出

编写一个程序实现从键盘接收一个字符串,并将这个字符逆序输出... 编写一个程序实现从键盘接收一个字符串,并将这个字符逆序输出 展开
 我来答
愚遗人生苦后求B
2008-06-19 · TA获得超过293个赞
知道小有建树答主
回答量:83
采纳率:0%
帮助的人:154万
展开全部
改进一下

用字符数组实现,字符串长度有限制

#include<conio.h>
#include<stdio.h>

int main(void)
{
int i;
int ch[128];

for (i = 0; (ch[i] = getchar()) != '\n'; i++);

printf("\n");

for (; i >= 0; i--)
printf("%c", ch[i]);

getch();
return 0;
}

在 TC 上测试通过

用链表实现,动态存储,字符串长度无限制

#include<alloc.h>
#include<conio.h>
#include<stdio.h>
#include<stdlib.h>
#define TYPE struct ch
#define LEN sizeof(struct ch)

int main(void)
{
TYPE
{
char c;
TYPE *previous;
TYPE *next;
};
TYPE *head, *last;
TYPE *p, *q;

head = (TYPE *)malloc(LEN);
p = head;
q = NULL;

printf("Input a string : ");

if ((head->c = getch()) != '\r')
do
{ if (p->c != '\b')
{
printf("%c", p->c);
p->previous = q;
q = p;
p->next = (TYPE *)malloc(LEN);
p = p->next;
}
else
{ if (q != NULL)
{ free(p);
p = q;
q = p->previous;
printf("\b \b");
}
}
}
while((p->c = getch()) != '\r');

p->previous = q;
p->next = NULL;
last = p;

printf("\n\nThe string inputed is : ");
q = last->previous;

while (q != NULL)
{ printf("%c", q->c);
q = q->previous;
}

getch();
return 0;
}
在 TC 上测试通过
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式