标题:为什么不能将字符串反转问题在哪,请教大神,谢谢!
只看楼主
Exercise
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2015-5-7
结帖率:0
已结贴  问题点数:20 回复次数:3 
为什么不能将字符串反转问题在哪,请教大神,谢谢!
#include<stdio.h>
#include<string.h>
void variable(char *p ,int n)//指针作为函数参数
{
    int i,j ;
    char t;
    for(i=0;i<n;i++)//交换位置就这个交换不了求解
    {
           t=*(p+i);
         *(p+i)=*(p+n-1-i);
          *(p+n-i-1)=t;
    }
    printf("output string for reversal:");
    for(j=0;j<n;j++)
    printf("%c",*(p+j));//打印
}

int main()
{
    char string[50];
    printf("plase enter string:\n");
    scanf("%s",string);//输入字符串
    printf("The original string is:%s\n",string);打印输入的字符串
    variable(string,strlen(string));//调用函数将数组首地址传给函数参数
        printf("%d\n",strlen(string));
    getch();
    return 0;
}
搜索更多相关主题的帖子: original include 字符串 
2015-05-17 00:31
a132266
Rank: 2
等 级:论坛游民
帖 子:86
专家分:20
注 册:2015-3-26
得分:10 
反向要先 最后一个数组元素输出到 第一个数组元素吧  你这个for循环那都不像  试试for(i=n; i<=0;i--  )
2015-05-17 04:58
calix
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:249
专家分:1442
注 册:2015-5-4
得分:10 
交换位置的话只要循环到n/2就行了
不然后面就会把之前交换过来的又交换回去的
所以for(i=0;i<n;i++)改成for(i=0;i<n/2;i++)就行了
2015-05-17 08:59
Exercise
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2015-5-7
得分:0 
谢谢!
2015-05-17 12:17



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-445388-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015571 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved