使用c++要求输入一段字符串,程序可以统计出某一字符串在这段串中出现的次数以及位置。

img


使用c++程序可以统计出某一字符串在这段文字中出现的位置
无法输出模式串每次匹配成功的首个位置

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/229918
  • 这篇博客你也可以参考下:C++ 基类中静态成员初始化问题、基类头文件中定义类外变量重定义问题的解决过程
  • 除此之外, 这篇博客: 怎么在C++中输入一个字符串,然后按输入的顺序输出只出现过一次的小写字母?中的 怎么在C++中输入一个字符串,然后按输入的顺序输出只出现过一次的小写字母? 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    我的代码是这样的:

    #include <iostream>
    #include <string>
    using namespace std;
    
    int main()
    {
    	int n;
    	cin >> n;
    	for (int i = 0; i < n; i++)
    	{
    		string a;
    		cin >> a;
    		int b = a.size();
    		int w[200] = { 0 };
    		int c;
    		for (int j = 0; j < b; j++)
    		{
    			c = a[j];
    			if (c >(int)'a'&&c < (int)'z' || c == (int)'a' || c == (int)'z')
    			{
    				w[c-(int)'a']++;
    			}
    		}
    		for (int g = 0; g < 100; g++)
    		{
    			if (w[g] == 1)
    			{
    				cout << (char)(g+(int)'a');
    			}
    		}
    		cout << endl;
    	}
    	return 0;
    }
    

    执行之后只能按照字母表的顺序输出只出现过一次的小写字母,并不是输入顺序的只出现过一次的小写字母。例如:输入“aaabbzxdddd",结果输出的是”xz",并不是“zx”。求解!!!


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^