Не могу понять где наапортачил. Только начал изучать С++ и предомной стоит такая задача, найти количество букы "а" в строке которая передаётся функции и вывести количество этих букв. Код значит выглядит вот так.
char str(char *str[]) {
int j = 0;
for (int i = 0; i < sizeof(str) / sizeof(*str); i++) {
if (str[i] == "a") {
j++;
}
}
return j;
}
Вызов функции в main.
cout << str("saassssasasasass") << endl;
Так вот когда вызываю функцию, VS выдаёт вот такую ошибку. Вчём проблемма? И ещё вопрос зачем нужны звёздочки char *str[]
и sizeof(str) / sizeof(*str)
Ошибка первая : в функцию передаёте строку, а принимаете как массив строк.
char str(char *str[]) {
надо так:
char str(char const * str) {
Ошибка вторая : вы сравниваете букву со строкой:
if (str[i] == "a") {
надо так:
if (str[i] == 'a') {
Код sizeof(str) / sizeof(*str)
это кто-то что-то ляпнул. Хотели вычислить количество букв в зависимости от размера структуры и размера элементов.
for (int i = 0; i < sizeof(str) / sizeof(*str); i++) {
для строки нужно так:
for (int i = 0; i < strlen(str); i++) {
int str(const char *str)
{
int count = 0;
for(; *str; str++)
if (*str == 'a') ++count;
return count;
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть вектор с заданным размером:
делаю внутри игровое меню и столкнулся с проблемой, как заблокировать мышь?