Найти первое вхождение буквы в слове - C (СИ)
Формулировка задачи:
Как найти первое вхождение буквы в слове "32fssdkj54"
здесь должно быть (позиция) =3.
for(int k = 0; k < strlen(a); k++){ if(isalpha(a[k])) ....... }
Решение задачи: «Найти первое вхождение буквы в слове»
textual
Листинг программы
#include<stdio.h> #include<ctype.h> int main(){ char* text="019dgh32", *p=text; for(; *p; ++p){ if(isalpha(*p)){ printf("%d\n", p-text); break; } } return 0; }
Объяснение кода листинга программы
В данном коде происходит следующее:
- Включаются необходимые заголовочные файлы:
stdio.h
- для работы с функциями ввода-выводаctype.h
- для работы с функциейisalpha
, которая проверяет является ли символ буквой
- Создаются две переменные типа char:
text
- указатель на строку019dgh32
p
- указатель, который будет итерироваться по строке
- Устанавливается начальное значение переменной p - она указывает на первый символ в строке
- Запускается цикл, который будет выполняться до тех пор, пока
*p
не станет равным нулю (т.е. пока не будет пройдена вся строка):- Внутри цикла проверяется, является ли текущий символ буквой с помощью функции
isalpha
- Если символ является буквой, то выводится сообщение с числом, равным расстоянию от начала строки до текущего символа
- После этого значение
p
увеличивается на единицу, чтобы перейти к следующему символу - Если текущий символ не является буквой, то ничего не происходит
- Внутри цикла проверяется, является ли текущий символ буквой с помощью функции
- По завершении цикла возвращается 0, что означает успешное выполнение программы Таким образом, данный код находит первое вхождение буквы в строке и выводит расстояние от начала строки до этой буквы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д