鱼C论坛

 找回密码
 立即注册
查看: 1576|回复: 6

[已解决]统计字符串中某个单词出现的次数

[复制链接]
发表于 2019-12-1 16:50:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
如何用C++或C编写一个统计字符串中某个单词出现次数的程序啊,看博客中的程序没有太看懂。
最佳答案
2019-12-1 19:09:03
本帖最后由 bin554385863 于 2019-12-1 19:10 编辑
#include <iostream>
#include <string>
using std::cout;
using std::endl;
using std::string;
int func(string &str, string &s) //str为母串.s为子串
{
    int count = 0, inx = 0, t = 0;
    while (t != -1)
    {
        t = str.find(s, inx);
        inx = t + s.size();
        count++;
    }
    return count - 1;
}
int main(int argc, char const *argv[])
{
    string str = "hello hello C++ C++ java java java ffd dsasdf";
    string s = "java";
    string a = "hello";
    string b = "ffd";
    cout<<"java = " <<func(str , s)<<"\nhello = "<<func(str, a)<<"\nffd = "<<func(str, b);
    return 0;
}
================================================
Microsoft Windows [版本 10.0.18363.476]
(c) 2019 Microsoft Corporation。保留所有权利。

E:\Users\admin\Documents\VScode\Code>c:\Users\admin\.vscode\extensions\ms-vscode.cpptools-0.26.1\debugAdapters\bin\WindowsDebugLauncher.exe --stdin=Microsoft-MIEngine-In-1npb2ofw.ojm --stdout=Microsoft-MIEngine-Out-owzfxyrt.2uf --stderr=Microsoft-MIEngine-Error-jm4ywmqx.v4c --pid=Microsoft-MIEngine-Pid-1wxotdp3.b3l --dbgExe=D:\MinGW\bin\gdb.exe --interpreter=mi
java = 3
hello = 2
ffd = 1

E:\Users\admin\Documents\VScode\Code>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-12-1 19:09:03 | 显示全部楼层    本楼为最佳答案   
本帖最后由 bin554385863 于 2019-12-1 19:10 编辑
#include <iostream>
#include <string>
using std::cout;
using std::endl;
using std::string;
int func(string &str, string &s) //str为母串.s为子串
{
    int count = 0, inx = 0, t = 0;
    while (t != -1)
    {
        t = str.find(s, inx);
        inx = t + s.size();
        count++;
    }
    return count - 1;
}
int main(int argc, char const *argv[])
{
    string str = "hello hello C++ C++ java java java ffd dsasdf";
    string s = "java";
    string a = "hello";
    string b = "ffd";
    cout<<"java = " <<func(str , s)<<"\nhello = "<<func(str, a)<<"\nffd = "<<func(str, b);
    return 0;
}
================================================
Microsoft Windows [版本 10.0.18363.476]
(c) 2019 Microsoft Corporation。保留所有权利。

E:\Users\admin\Documents\VScode\Code>c:\Users\admin\.vscode\extensions\ms-vscode.cpptools-0.26.1\debugAdapters\bin\WindowsDebugLauncher.exe --stdin=Microsoft-MIEngine-In-1npb2ofw.ojm --stdout=Microsoft-MIEngine-Out-owzfxyrt.2uf --stderr=Microsoft-MIEngine-Error-jm4ywmqx.v4c --pid=Microsoft-MIEngine-Pid-1wxotdp3.b3l --dbgExe=D:\MinGW\bin\gdb.exe --interpreter=mi
java = 3
hello = 2
ffd = 1

E:\Users\admin\Documents\VScode\Code>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-1 19:52:11 | 显示全部楼层
bin554385863 发表于 2019-12-1 19:09
================================================
Microsoft Windows [版本 10.0.18363.476]
(c) 201 ...

厉害,谢谢啦,麻烦问一下,17行的常量字符数组是什么意思啊,有点没有懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-1 19:57:22 | 显示全部楼层
forever33221 发表于 2019-12-1 19:52
厉害,谢谢啦,麻烦问一下,17行的常量字符数组是什么意思啊,有点没有懂

那不是常量字符串,那是C++的string类定义的字符串对象
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-1 20:53:54 | 显示全部楼层
bin554385863 发表于 2019-12-1 19:57
那不是常量字符串,那是C++的string类定义的字符串对象

main后面括号里的就是字符串对象定义的写法呗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-1 21:16:57 | 显示全部楼层
forever33221 发表于 2019-12-1 20:53
main后面括号里的就是字符串对象定义的写法呗

main(int argc, char const *argv[])
这个括号里面的没有特殊需求也可以不写,至于什么意思,你可以百度一下,我说不清楚
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-1 21:33:47 | 显示全部楼层
bin554385863 发表于 2019-12-1 21:16
main(int argc, char const *argv[])
这个括号里面的没有特殊需求也可以不写,至于什么意思,你可以百度一 ...

好的,谢谢啦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-5 01:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表