Поиск буквы в слове - C (СИ)
Формулировка задачи:
Господа, добрый день.
Провожу вот тренировки по передаче указателей на строку в функцию. Пытаюсь найти в заданной строке определенные символы. Но функция возвращает неверный результат..зараза такая... Проверил все уже сто раз и не могу найти ошибку. Ткнете носом в ошибку пожалуйста.
Спасибо)
#include <stdio.h> #include <stdlib.h> #define N 11\\ максимальное кол-во букв в функции int funk(char *str);\\прототип функции int main(void) { char *A="oooanvv";\\Заданное слово int c; c=funk(A);\\скидываю указатель на строку в функцию printf("Otvet= %d", c);\\вывожу на экран результат работы функции return 0; } int funk(char *str) { int tmp=0; int i; if (str==NULL)\\если строка пуста { return -1; } else { for(i=0; str[i]!='\0'; i++) { if (str[i]=='a' && str[i]=='n')\\поиск заданных символов в строке tmp++;\\при нахождении символа = счетчик++ } return tmp;\\возврат кол ва найденных символов } }
Решение задачи: «Поиск буквы в слове»
textual
Листинг программы
int Counter(char* pszStr) { int iCnt = 0; if (!pszStr || !*pszStr) { // Nothing to do return -1; } for (int ii = 0; pszStr[ii]; ++ii) { if (pszStr[ii] == 'a' || pszStr[ii] == 'n') { ++iCnt; } } return iCnt; } int main(int argc,char** argv) { char* pszTest = "oooanvv"; int iRes = 0; iRes = Counter(pszTest); printf("Result: %d",iRes); return 0; }
Объяснение кода листинга программы
В данном коде реализована функция Counter
, которая принимает в качестве аргумента указатель на строку символов pszStr
и возвращает количество букв 'a' и 'n' в этой строке.
- Проверка входных данных:
- Если
pszStr
или*pszStr
равно NULL, то функция возвращает -1, так как нечего обрабатывать.
- Если
- Основной цикл функции:
- Итерация по всем символам строки
pszStr
. - Если текущий символ равен 'a' или 'n', то увеличивается счетчик
iCnt
.
- Итерация по всем символам строки
- Возврат результата:
- Функция возвращает значение счетчика
iCnt
. В функцииmain
создается строкаoooanvv
и вызывается функцияCounter
с этой строкой в качестве аргумента. Результат работы функцииCounter
выводится на экран с помощью функцииprintf
.
- Функция возвращает значение счетчика
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д