| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 891 人关注过本帖
标题:为啥引用不行
只看楼主 加入收藏
DJY774692667
Rank: 1
等 级:新手上路
帖 子:21
专家分:7
注 册:2015-7-14
结帖率:90%
收藏
已结贴  问题点数:20 回复次数:4 
为啥引用不行
#include<stdio.h>
#include<stdlib.h>
    int main()
    {
void invert(char str[] );
        int n,i;
        char *p;
    printf("请输入数组长度:");
scanf("%d",&n);
    p=(char*)calloc(n,sizeof(char));
    printf("\n");
    scanf("%s",p);
    invert(p);
    for(i=0;i<n;i++)
    printf("%s",p[i]);
}
void invert (char str [])
{ int i,j,k;
 for(i=0,j=k-1;i<=j;i++,j--){
k=str[i];
str[i]=str[j];
str[j]=k; }
}
搜索更多相关主题的帖子: include include 
2015-12-15 09:48
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:20 
void invert (char str [])
{ int i,j,k;
for(i=0,j=k-1;i<=j;i++,j--){   《---- j=k-1 , 这里k的值是多少?


#include<stdio.h>
#include<stdlib.h>
#include <string.h>
void main()
{
    void invert(char str[] );
    int n,i;
    char *p;
    printf("请输入数组长度:");
    scanf("%d",&n);
    p=(char*)calloc(n+1,sizeof(char)); 《----这里分配n+1个空间,'\0'要占一个
    printf("\n");
    scanf("%s",p);
    invert(p);
    for(i=0;i<n;i++)
        printf("%c",p[i]);  《----打印字符%c,不是%s
}

void invert (char str [])
{ int i,j,k;
k=strlen(str);
for(i=0,j=k-1;i<=j;i++,j--){
    k=str[i];
    str[i]=str[j];
    str[j]=k; }
}


[此贴子已经被作者于2015-12-15 14:49编辑过]


我们都在路上。。。。。
2015-12-15 14:24
DJY774692667
Rank: 1
等 级:新手上路
帖 子:21
专家分:7
注 册:2015-7-14
收藏
得分:0 
回复 2楼 hellovfp
#include<stdio.h>
#include<stdlib.h>
    int main()
    {
void invert(char str[],int k);
        int k,i;
        char *p;
    printf("请输入数组长度:");
scanf("%d",&k);
    p=(char*)calloc(k+1,sizeof(char));
    printf("\n");
    scanf("%s",p);
    invert(p,k);
    for(i=0;i<k;i++)
    printf("%c",p[i]);
}
void invert (char str[],int k)
{ int i,j,b;
 for(i=0,j=k-1;i<=j;i++,j--){
b=str[i];
str[i]=str[j];
str[j]=b; }
}改了之后还是不行。。。。。。。
2015-12-15 19:28
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:0 
你改的这个代码在输入长度大于分配空间的串时候会崩溃。小于和等于空间的串没有问题。

#include<stdio.h>
#include<stdlib.h>
    int main()
    {
void invert(char str[],int k);
        int k,i;
        char *p;
    printf("请输入数组长度:");
    scanf("%d",&k);
    while(getchar()!='\n');//加了一句
    p=(char*)calloc(k+1,sizeof(char));
    printf("\n");
    //scanf("%s",p);
    fgets(p, k+1, stdin); //换成这个接收输入,scanf会把多于空间的字符也读进去。

    invert(p,k);
    for(i=0;i<k;i++)
    printf("%c",p[i]);
    free(p); //用完了释放一下吧。
    return 0;
}
void invert (char str[],int k)
{ int i,j,b;
for(i=0,j=k-1;i<=j;i++,j--){
b=str[i];
str[i]=str[j];
str[j]=b; }
}


我们都在路上。。。。。
2015-12-15 22:59
DJY774692667
Rank: 1
等 级:新手上路
帖 子:21
专家分:7
注 册:2015-7-14
收藏
得分:0 
谢谢大神
2015-12-16 22:26
快速回复:为啥引用不行
数据加载中...
 
   



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

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