帮我解决这歌头痛的问题?

zhenzhizhe 2008-03-28 08:25:38
#include <iostream>
using namespace std;
int SubStrNum(char *str,char *substr)
{
int NUM=0;
int h1,h2;
int p1,p2;
h1=strlen(str);
h2=strlen(substr);

for(p2=0;p2<h2;p2++)
{
if(str[p2]=substr[p1])

NUM++;
if (p1==h1-1)
break;
}
return NUM;

}
void main ()
{
char *str,*substr;
cout<<"input the str:"<<endl;
cin>>str;
cout<<"input the substr:"<<endl;
cin>>substr;
cout<<SubStrNum(str,substr)<<endl;
}
...全文
118 14 打赏 收藏 举报
写回复
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
liveforme 2008-03-31
  • 打赏
  • 举报
回复
lz加油
zhenzhizhe 2008-03-30
  • 打赏
  • 举报
回复
谢谢
慢慢学习
queshangxintou 2008-03-29
  • 打赏
  • 举报
回复
以上各位已经说的很清楚了
你这个程序编译器都会有警告的
你先把警告都改掉都能解决问题
另外你一步步跟一下就知道原因出在那了
jerryhgc 2008-03-29
  • 打赏
  • 举报
回复
正解!楼上的书写很严谨噢,学习一下~~
[Quote=引用 10 楼 jieao111 的回复:]
你怎么在SubStrNum里分配内存,,还有char *str=new str[100];
char *substr=new str[100]; 写法也不对
C/C++ code#include <iostream>
using namespace std;
int SubStrNum(char *str,char *substr)
{
int NUM=0;
int h1,h2;
int p1=0,p2;
h1=strlen(str);
h2=strlen(substr);

for(p2=0;p2 <h2;p2++)
{
if(str[p2]==substr[p1])
NUM++;
if (p1==h1-1)
break;
}
return NUM;
delete s…
[/Quote]
jieao111 2008-03-29
  • 打赏
  • 举报
回复
你怎么在SubStrNum里分配内存,,还有char *str=new str[100];
char *substr=new str[100]; 写法也不对
#include  <iostream> 
using namespace std;
int SubStrNum(char *str,char *substr)
{
int NUM=0;
int h1,h2;
int p1=0,p2;
h1=strlen(str);
h2=strlen(substr);

for(p2=0;p2 <h2;p2++)
{
if(str[p2]==substr[p1])
NUM++;
if (p1==h1-1)
break;
}
return NUM;
delete str;
delete substr;

}
void main ()
{
char *str=new char[100];
char *substr=new char[100];


cout<<"input the str:"<<endl;
cin>>str;
cout<<"input the substr:"<<endl;
cin>>substr;
cout<<SubStrNum(str,substr)<<endl;
}
hityct1 2008-03-29
  • 打赏
  • 举报
回复
void main ()
{
char *str,*substr;
cout < <"input the str:" < <endl;
cin>>str; //指针指向了哪里?
cout < <"input the substr:" < <endl;
cin>>substr; //指针指向了哪里?
cout < <SubStrNum(str,substr) < <endl;
}
zhenzhizhe 2008-03-28
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;
int SubStrNum(char *str,char *substr)
{
char *str=new str[100];
char *substr=new str[100];
int NUM=0;
int h1,h2;
int p1=0,p2;
h1=strlen(str);
h2=strlen(substr);

for(p2=0;p2<h2;p2++)
{
if(str[p2]==substr[p1])
NUM++;
if (p1==h1-1)
break;
}
return NUM;
delete str;
delete substr;

}
void main ()
{
char *str,*substr;
cout<<"input the str:"<<endl;
cin>>str;
cout<<"input the substr:"<<endl;
cin>>substr;
cout<<SubStrNum(str,substr)<<endl;
}
再还有什么小问题?
zhenzhizhe 2008-03-28
  • 打赏
  • 举报
回复
同意变量初始化
独孤过儿 2008-03-28
  • 打赏
  • 举报
回复
燕大哥好久不见了啊!最近忙什么呢?
wuyu637 2008-03-28
  • 打赏
  • 举报
回复
int NUM=0;
int h1,h2;
int p1=0,p2=0;

-----------------------------变量初始化。。
飞哥 2008-03-28
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;
int SubStrNum(char *str,char *substr)
{
int NUM=0;
int h1,h2;
int p1,p2;
h1=strlen(str);
h2=strlen(substr);

for(p2=0;p2 <h2;p2++)
{
if(str[p2]=substr[p1]) // take care '==", not "="

NUM++;
if (p1==h1-1)
break;
}
return NUM;

}
void main ()
{
char *str,*substr; //this is the root cause; your pointers have no memory. you can use array.
cout < <"input the str:" < <endl;
cin>>str;
cout < <"input the substr:" < <endl;
cin>>substr;
cout < <SubStrNum(str,substr) < <endl;
}
wuyu637 2008-03-28
  • 打赏
  • 举报
回复
char *str = new char[100];
char*substr = new char[100];


指针初始化。。。谢谢。。
fosjos 2008-03-28
  • 打赏
  • 举报
回复
第一步:char str[20],substr[20];
zhenzhizhe 2008-03-28
  • 打赏
  • 举报
回复
当程序运行的时候会有错误,不知道什么原因? 帮帮忙
发帖
C++ 语言

6.3w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
帖子事件
创建了帖子
2008-03-28 08:25
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下