C语言程序设计:编写程序,将一个字符串存放在数组中,并按逆序输出。 5

 我来答
星月小木木
推荐于2016-03-25 · TA获得超过3.2万个赞
知道大有可为答主
回答量:2.4万
采纳率:0%
帮助的人:9465万
展开全部

反序字符串,只需要将首尾字符依次调换即可。

#include <stdio.h>
#include <string.h>

// 反序字符串x并返回
char* reverse(char *x)
{
    int len = strlen(x);
    int i, n = len / 2;
    char tem;
    for (i = 0; i <= n; i++)
    {
        tem = x[i];
        x[i] = x[len - 1 - i];
        x[len - 1 - i] = tem;
    }
    return x;
}

int main()
{
    char str[100];
    printf("input a string :");
    gets(str);
    puts(reverse(str));
    return 0;
}

百度网友b1f2f1e
2008-11-12 · TA获得超过275个赞
知道小有建树答主
回答量:141
采纳率:50%
帮助的人:85.3万
展开全部
楼上的程序存在两个缺点:1.循环次数过多 2.多次调用putchar,效率过低

lz可以参考下面的代码,效率比较高一点,而且相对来说代码比较漂亮一点。

#include <stdio.h>
#include <string.h>

#define SWAP(x, y) { \
x = x ^ y; \
y = x ^ y; \
x = x ^ y; \
}

void reserveArr(char *ch)
{
int i = 0;
int j = strlen(ch) - 1;

while (i < j) {
SWAP(ch[i], ch[j]);
i++;
j--;
}
}

int main()
{
char ch[1024] = {0};

gets(ch);
reserveArr(ch);
printf("ch = %s\n", ch);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
arm_linux_gcc
2008-11-12 · TA获得超过623个赞
知道小有建树答主
回答量:331
采纳率:0%
帮助的人:203万
展开全部
#include "stdio.h"
#include "string.h"

void main()
{ void inverse(char str[]);
char str[100];
printf("请输入一行字符串:\n");
scanf("%s",str);
inverse(str);
printf("反序字符串为:\n");
printf("%s\n",str);
}
void inverse(char str[])
{ char t;
int i,k;
k=strlen(str)-1;
for(i=0;i<(strlen(str)/2+1);i++,k--)
{
t=str[i];
str[i]=str[k];
str[k]=t;

}
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
未央之魂
2008-11-12 · TA获得超过176个赞
知道答主
回答量:90
采纳率:0%
帮助的人:40.9万
展开全部
用栈
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2008-11-12
展开全部
#include<stdio.h>
#include<string.h>
main()
{
char a[100];
int n,i;
gets(a);
n=strlen(a)-1;
for(i=n;i>=0;i--)
putchar(a[i]);
getch();
}

win-tc试过了。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式