| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1830 人关注过本帖
标题:程序运行不了,麻烦指教一下
只看楼主 加入收藏
huaheshang
Rank: 2
来 自:日照
等 级:论坛游民
帖 子:91
专家分:37
注 册:2010-12-7
结帖率:79.31%
收藏
已结贴  问题点数:20 回复次数:8 
程序运行不了,麻烦指教一下
#include"stdio.h"
#include"string.h"
char *dele(char *s,int n,int len)
{
   int i,j=0;
   char jh[100]={0};
   for(i=0;i<n;i++)
   {
      jh[i]=s[j];
      j++;
    }

   while(s[j+len]!='\0')
   {
       jh[i]=s[j+len];
        i++;
        j++;
   
   }
   jh[i]='\0';
   return (jh);
}
int main()
{
  int n,len;
  char str[100]={0};
  char *s;
  puts("字符串:");
      gets(str);
      puts("开始处:");
      scanf("%d",&n);
      getchar();
      puts("个数:");
      scanf("%d",&len);
      getchar();
      puts("改变后的字符串:");
      s=dele(str,n,len);
      printf("%s",*s);
      getchar();
      getchar();
      return 0;
}
搜索更多相关主题的帖子: puts char getchar 运行 int 
2020-02-09 03:00
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:0 
dele返回的jh在dele执行完就会被释放
2020-02-09 04:29
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
是报错还是停在哪一步了?

剑栈风樯各苦辛,别时冰雪到时春
2020-02-09 07:26
huaheshang
Rank: 2
来 自:日照
等 级:论坛游民
帖 子:91
专家分:37
注 册:2010-12-7
收藏
得分:0 
没报错,最后一步,不出结果

2020-02-09 09:41
huaheshang
Rank: 2
来 自:日照
等 级:论坛游民
帖 子:91
专家分:37
注 册:2010-12-7
收藏
得分:0 
回复 2楼 吹水佬
请问一下,可以修改吗,可以的话,如何修改
2020-02-09 09:43
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册:2014-5-20
收藏
得分:20 
以下是引用huaheshang在2020-2-9 09:43:52的发言:

请问一下,可以修改吗,可以的话,如何修改

如果可不保留原str,直接修改str。
在dele函数动态分配堆空间存放结果并返回地址
在dele外定义存放结果的空间并作为dele的输入/输出参数和返回地址
另:
printf("%s",*s);
改为:
printf("%s",s);
2020-02-09 09:59
huaheshang
Rank: 2
来 自:日照
等 级:论坛游民
帖 子:91
专家分:37
注 册:2010-12-7
收藏
得分:0 
回复 6楼 吹水佬
谢谢!
2020-02-09 10:52
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:570
专家分:3727
注 册:2019-7-29
收藏
得分:0 
程序代码:
#include <stdio.h>

char *dele(char *s,int n,int len)
{
    int i;
    static char jh[100]= {0};   //必须使用static静态变量,否则子函数返回时,局部变量销毁,返回地址无意义
    for(i=0; i<len; i++)
    {
        if(s[n]!='\0')
            jh[i]=s[n++];
        else
            break;
    }
    jh[i]='\0';
    return (jh);
}
int main()
{
    int n,len;
    char str[100]= {0};
    char *s=NULL;
    puts("字符串:");
    gets(str);
    puts("开始处:");
    scanf("%d",&n);
    getchar();
    puts("个数:");
    scanf("%d",&len);
    getchar();
    puts("改变后的字符串:");
    s=dele(str,n,len);
    printf("%s",s);
    getchar();
    getchar();
    return 0;
}

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2020-02-09 11:11
huaheshang
Rank: 2
来 自:日照
等 级:论坛游民
帖 子:91
专家分:37
注 册:2010-12-7
收藏
得分:0 
回复 8楼 纯蓝之刃
谢谢,学习啦!
2020-02-09 16:49
快速回复:程序运行不了,麻烦指教一下
数据加载中...
 
   



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

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