Как посчитать определенный символ/ замененный символ

#c

Вопрос:

 ...
v.push_back(s);
}

for (int i =0; i < v.size();   i)
{
int a_pos = -1;
a_pos = v[i].find('a');
if (a_pos != -1)
v[i][a_pos] = '@';

}

cout<< v.size() << " ";
 

Отредактировано, чтобы удалить весь мой предыдущий код целиком, так как только эта часть была/нужна для ответа на мой вопрос. Остальная часть кода решила проблему, в то время как эта часть «посчитала» соответствующий символ.

Комментарии:

1. Добро пожаловать! Я бы посоветовал вам обратиться к стандартным библиотечным алгоритмам.

2. Вам нужно подсчитать количество слов с заменой а ?

3. Да, я знаю, что мой размер v должен быть заменен, но я не могу понять, с чем, я пробовал другие входные данные из кода и даже другие операторы if, чтобы попытаться пройти, но безрезультатно

Ответ №1:

Если вам нужно, чтобы он выводил количество замен, то самый прямой способ-просто ввести специальную counter переменную и увеличивать ее при каждой замене:

 #include <iostream>
#include <vector>
#include <string>

using namespace std;

int main()
{
    vector<string> v;
    string s; 
    int numOfStrings;
    cin>>numOfStrings;
    unsigned counter = 0; // Our counter

    for (int i =0; i < numOfStrings;   i) {
        cin>>s;
        v.push_back(s);
    }

    for (int i =0; i < v.size();   i) {
        int a_pos = -1;
        a_pos = v[i].find('a');
        if (a_pos != -1) {
            v[i][a_pos] = '@';
              counter; // Done a replacement, increment the counter
        }
    }

    cout << "Counter: " << counter << endl; // Print the count of replacements

    for (auto elem : v) { // Print all the elements in our vector of strings
        cout<< elem <<" ";}
    
 

Пример:

 Input: 
2 bar foo
    
Output: 
Counter: 1
b@r foo
 

Комментарии:

1. Большое вам спасибо! Я попытался сделать это таким образом, используя count , но не смог заставить его работать

2. @user16101600 тогда я надеюсь, что вам будет полезно рассмотреть, чем отличается ваша counter версия от этой. Не забудьте принять ответ, если это то, что вы искали.