查找字符串中的指定的字符

xue785920414 2009-12-25 08:09:29
#include<iostream>
#include<cstring>
using namespace std;
char *strchr(char*string,int c)
{
while(*string!=c && *string!=0)

string++;
if(*string==c)
return string;
else
return NULL;
}
int main()
{
char a[20];
int b;
cout<<"please enter 20 :";
cin>>a;
cout<<endl<<"please enter b:";
cin>>b;
cout<<*strchr(a,b);
return 0;
}

程序可以运行,但结果不对
...全文
185 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hello0world0 2009-12-25
  • 打赏
  • 举报
回复
char *strchr(const char *str, int ch)
{
char *p = str;
while (*p && *p != ch)
p++;
return *p == 0 ? 0 : p;
}
hlyces 2009-12-25
  • 打赏
  • 举报
回复
char
deBroglie_cn 2009-12-25
  • 打赏
  • 举报
回复

cout << *strchr(a,b)

看错了 你这样是单个字符的- - 把b改成char就行了
xue785920414 2009-12-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hrlhrl0 的回复:]
while(c-- && *string!=0)
[/Quote]
运行结果还不对呀?
太乙 2009-12-25
  • 打赏
  • 举报
回复
char a[20];
int b; ---------这是int
deBroglie_cn 2009-12-25
  • 打赏
  • 举报
回复

#include <iostream>
#include <cstring>
using namespace std;
char *strchr(char* string, char c)
{
while(*string != c && *string != 0)
string++;
if(*string==c)
return string;
else
return NULL;
}
int main()
{
char a[20];
char b; //改成char
cout <<"please enter 20 :";
cin>>a;
cout <<endl <<"please enter b:";
cin>>b;
if ( strchr(a,b) )
cout << strchr(a,b);
else //若找不到
cout << "can not find the string.." << endl;
return 0;
}
附:你这样找出的是第一个字符匹配后的剩余字符串而不是单个字符。。。
xu_cq2004 2009-12-25
  • 打赏
  • 举报
回复
学习中。
hrlhrl0 2009-12-25
  • 打赏
  • 举报
回复
while(c-- && *string!=0)

64,651

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧