strstr c++(C++程序纠错:error: no match for ’operator*’ in ’*data’)

本文目录
C++程序纠错:error: no match for ’operator*’ in ’*data’
strstr是针对传统C字符串样式的,即char 指针那种,后面有一个结束符0的。
std::string是一个类,和 "abc"这种东西不一样。
报错的原因是*data,是调用operator *,而该操作法重载在string类中并未实现。
两种改法,1,*data改为data.c_str()
2,使用data.find("=")
C/C++语言 计算字符串中子字符串出现的次数
1.可通过 strstr 函数,查找子字符串。找到后即非空,然后加上子字符串偏移,再进行查找没,直到最后返回为空。
2.char *strstr( const char *str1, const char *str2 );
功能:函数返回一个指针,它指向字符串str2
首次出现于字符串str1中的位置,如果没有找到,返回NULL。
#include 《stdio.h》
#include 《string.h》
// 从str1中查找str2的个数,并返回
int findChildCnt(char* str1, char* str2)
{
int len = strlen(str2);
int cnt = 0;
while (str1 = strstr(str1, str2)) // 如果查找到,则执行循环,否则为空退出循环
{
cnt++; // 统计次数
str1 += len; // 加上偏移量,即移除str2
}
return cnt;
}
int main()
{
char str1;
printf("intput str1 :");
gets(str1);
printf("intput str2 :");
gets(str2);
printf("Child Cnt: %d\n", findChildCnt(str1, str2));
return 0;
}

更多文章:
he agreed to help(用need to do sth.和agree to do sth. 造句)
2026年8月31日 01:00
instr函数的返回值(关于vb中InStr函数的一个小问题)
2026年1月26日 22:30
slcp是什么意思(matlab.*和matlab. s有什么区别)
2026年1月3日 12:00
db2数据库update后想恢复(你好,SQL修改错了,修改前没有备份,请问怎么还原到修改前的数据,你知道吗可以给联系方式我请教一下)
2026年9月17日 12:00
assert python用法(python:assert_raises() 怎么用啊,有哪些参数 请说得详细些,先谢谢了!)
2026年7月11日 08:30
this is it歌词好诡异(Turn The Lights On的歌词翻译)
2025年7月26日 02:30
tabletennis安卓游戏(table tennis touch多人游戏时提示game center断开链接怎么解决)
2025年8月8日 17:15
迷你qq头像(2021头像可爱呆萌男生,寻找一些头像小男孩的那种)
2026年2月14日 13:00
















