标题:程序运行不了,麻烦指教一下
只看楼主
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: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
dele返回的jh在dele执行完就会被释放
2020-02-09 04:29
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2276
专家分: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: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册: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
帖 子:554
专家分:3690
注 册: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



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




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

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