标题:自编写C语言求子串函数substr,请大家提出宝贵意见
只看楼主
hfhf2006
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:62
专家分:169
注 册:2012-6-29
结帖率:100%
已结贴  问题点数:2 回复次数:4 
自编写C语言求子串函数substr,请大家提出宝贵意见
#include <stdio.h>
#include <string.h>
//字符串子串截取函数
//时间:2012.6.30
//作者:开心就好  QQ:32493835
char * substr(char *str,int star,int len)
{
  char s[100];
  int k1,k2;
  if(star<0 || len<0)
      return NULL;
  puts(str);
  for(k1=star-1,k2=0;k1<star+len-1;k1++,k2++)
     {
       s[k2]=str[k1];
      // putchar(str[k1]);
     }
     s[k2]='\0';
  return s;
}
int main(int argc, char *argv[])
{
    char  *p,*q;
    int star,len;
    printf("请输入一串字符");
    gets(p);
    printf("请输入要截取字串的起始位置和长度(例如3,4):");
    scanf("%d,%d",&star,&len);
    q=substr(p,star,len);
    printf("其子串为:%s",q);
    return 0;
}
我有个问题,就是将最后面的printf("其子串为:%s",q);
改用puts(q)会输出乱码,为什么?
搜索更多相关主题的帖子: star include return C语言 
2012-06-30 13:49
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
得分:0 
犯了大忌了,返回被调函数定义的局部变量地址

总有那身价贱的人给作业贴回复完整的代码
2012-06-30 14:22
Cheng_A_S
Rank: 2
等 级:论坛游民
帖 子:9
专家分:17
注 册:2012-6-30
得分:2 
未检测str是否为NULL
2012-06-30 16:57
hfhf2006
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:62
专家分:169
注 册:2012-6-29
得分:0 
回复 2楼 embed_xuel
没看明白,我的程序调试时通过的
2012-07-01 20:06
hfhf2006
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:62
专家分:169
注 册:2012-6-29
得分:0 
回复 2楼 embed_xuel
有道理
2012-07-01 20:19



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




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

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