| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1750 人关注过本帖
标题:反序输出字符串(调用函数),,编译有错。。。
只看楼主 加入收藏
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
结帖率:95.37%
收藏
已结贴  问题点数:20 回复次数:10 
反序输出字符串(调用函数),,编译有错。。。
#include<stdio.h>
#include<string.h>
#define n 1000
{
    void antitone(char s[n]);
    int i;
    char s[n],a[n];
    gets(s);
    antitone(s);
    for(i=0;i<=strlen(s);i++)
        printf("%s",a);
    return 0;
}
void antitone(char s[n])
{
    int i,a[i];
    for(i=strlen(s);i>=0;i--)
    {
        a[i]=s[i];
    }
}
搜索更多相关主题的帖子: include 字符串 
2017-03-05 13:12
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:7 
程序代码:
#include <stdio.h>
#include <string.h>
#define n 1000
void
antitone( char a[], char s[] );

int
main( void )
{
    char s[n],a[n];

    gets(s);
    antitone(a,s);
    puts(a);

    return 0;
}
void
antitone( char a[], char s[] )
{
    int i, j;
    i = strlen( s ) - 1;
    
    for( j = 0; i >= 0; i--, j++ )
        a[j] = s[i];
    
    a[j] = '\0';
}

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-03-05 13:38
烟雨晨曦
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:7
帖 子:150
专家分:599
注 册:2017-3-5
收藏
得分:7 
void antitone(char s[],char a[])
{
    int nLen = strlen(s);
    memset(a, '\0', nLen + 1);
    int j = 0;
    int i = nLen - 1;
    for(;i>=0;i--,j++)
    {
        a[j]=s[i];
    }
}


[此贴子已经被作者于2017-3-5 13:50编辑过]

2017-03-05 13:42
shenggeyanwu
Rank: 2
等 级:论坛游民
帖 子:26
专家分:11
注 册:2017-1-25
收藏
得分:7 
自定义函数void antitone(char s[n])中的语句 int i,a[i];有问题,因为数组长度不能用变量,而应该用常量或常数。另外主函数应该明示,在#define n 1000下面写上主函数头int main(void)才好。

[此贴子已经被作者于2017-3-5 20:36编辑过]

2017-03-05 13:51
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 2楼 renkejun1942
void antitone(char a[], char s[]);这为什么嘛要定义两个??而且【】里面都是空的。。     i = strlen(s) - 1; a[j] = '\0'; 还有 麻烦解释一下这两句什么意思呗。
2017-03-05 15:02
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 3楼 烟雨晨曦
为什么要定义两个 而且【】里面都是空的。。?
2017-03-05 15:03
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 4楼 shenggeyanwu
int main()也可以吧。。
2017-03-05 15:04
烟雨晨曦
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:7
帖 子:150
专家分:599
注 册:2017-3-5
收藏
得分:0 
回复 6楼 花脸
void antitone(char* s,char* a)
{
    int nLen = strlen(s);
    memset(a, '\0', nLen + 1);
    int j = 0;
    int i = nLen - 1;
    for(;i>=0;i--,j++)
    {
        a[j]=s[i];
    }
}

你调用antitone(s,a)时;将 s,a两个指针传递到函数中,这样你修改的就是s,a所指向的内存的值.



[此贴子已经被作者于2017-3-5 19:39编辑过]

2017-03-05 19:32
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 8楼 烟雨晨曦
  指针还没学到。。
2017-03-05 19:59
shenggeyanwu
Rank: 2
等 级:论坛游民
帖 子:26
专家分:11
注 册:2017-1-25
收藏
得分:0 
回复 7楼 花脸
楼主用什么样的编译器,旧的版本不填void新版本必须填写void
2017-03-05 20:40
快速回复:反序输出字符串(调用函数),,编译有错。。。
数据加载中...
 
   



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

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