| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 421 人关注过本帖
标题:为什么不能将字符串反转问题在哪,请教大神,谢谢!
只看楼主 加入收藏
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
快速回复:为什么不能将字符串反转问题在哪,请教大神,谢谢!
数据加载中...
 
   



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

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