| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 837 人关注过本帖
标题:请教一下为什么以下两个函数,第二个可以,第一个却不行。
只看楼主 加入收藏
luoj75
Rank: 2
等 级:论坛游民
帖 子:17
专家分:55
注 册:2016-11-28
结帖率:100%
收藏
已结贴  问题点数:8 回复次数:5 
请教一下为什么以下两个函数,第二个可以,第一个却不行。
//////第一个///////
char * prefix(char* s1, char* s2)
{ char *P=  (char*)malloc(sizeof(char) * 51);
 int count=0;
  for(int i=0;i<sizeof(s1);i++){
      if(*(s1+i)==*(s2+i)){count++;
      }
      else{break;
      }
      
  }
  for(int j=0;j<count;j++){
      *(P+j)=*(s1+j);
  }
  *p='\0';
  return p;
}

/////////////第二个////
 char *prefix(char *s1, char *s2)
{
    char *sb;
    sb=(char*)malloc(sizeof(char) * 51);
    char *p=sb;
    while(*s1==*s2){
        *p=*s1;
        p++,s1++,s2++;
    }
    *p='\0';
    return sb;
}
搜索更多相关主题的帖子: return count 
2016-12-05 22:05
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10567
专家分:43011
注 册:2014-5-20
收藏
得分:8 
//////第一个///////
char * prefix(char* s1, char* s2)
{ char *P=  (char*)malloc(sizeof(char) * 51);
 int count=0;
  for(int i=0;i<sizeof(s1);i++){  这时的sizeof(s1)是什么意思?sizeof(s1)实际是多少?
2016-12-05 22:41
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10567
专家分:43011
注 册:2014-5-20
收藏
得分:0 
/////////////第二个////
 char *prefix(char *s1, char *s2)
{
    char *sb;
    sb=(char*)malloc(sizeof(char) * 51);
    char *p=sb;
    while(*s1==*s2){ 这里有越界的可能。
2016-12-05 22:45
luoj75
Rank: 2
等 级:论坛游民
帖 子:17
专家分:55
注 册:2016-11-28
收藏
得分:0 
回复 2楼 吹水佬
例:
s1=abcsd
s2=abklgdfv
都是字符串,求共同前缀。
O(∩_∩)O谢谢指教
2016-12-05 23:01
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10567
专家分:43011
注 册:2014-5-20
收藏
得分:0 
以下是引用luoj75在2016-12-5 23:01:29的发言:

例:
s1=abcsd
s2=abklgdfv
都是字符串,求共同前缀。
O(∩_∩)O谢谢指教

有无s1等于s2的可能?
另,C语言是大小写敏感,*P与*p不等。
2016-12-05 23:14
luoj75
Rank: 2
等 级:论坛游民
帖 子:17
专家分:55
注 册:2016-11-28
收藏
得分:0 
回复 5楼 吹水佬
明白了,O(∩_∩)O谢谢dalao
2016-12-05 23:28
快速回复:请教一下为什么以下两个函数,第二个可以,第一个却不行。
数据加载中...
 
   



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

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