Посчитать число букв в слове - C (СИ)
Формулировка задачи:
Пытаюсь посчитать число букв в слове. Компилируется, но выводит неправильный ответ.
Выводит на экран следующее:
#include<stdio.h> int main(){ char *word[]= {"yes"}; char *letter; int i = 0; letter = word[0]; while(letter!=" "){ printf("%c\n",*letter); letter++; i++; } printf("%d\n",i); return 0; }
→ ./letters y e s % c 8
Вроде абсолютно легкая программа, но все же...???Решение задачи: «Посчитать число букв в слове»
textual
Листинг программы
#include <stdio.h> int main() { char* word[] = {"yes"}; char* letter; int i = 0; letter = word[0]; while (*letter != '\0' && *letter != ' ') { printf("%c\n", *letter); letter++; i++; } printf("%d\n", i); return 0; }
Объяснение кода листинга программы
В этом коде используется язык C. Он объявлен в директиве #include <stdio.h>
, которая подключает к программе функции файла стандартного ввода/вывода, нужные для отправки сообщений в консоль.
Список переменных в этом коде:
word[]
— массив указателей на строки. В данном случае он содержит всего один указатель на строкуyes
.letter
— указатель на отдельную букву в строке.i
— счётчик количества букв. В первой строке кода инициализируется переменнаяword[]
как массив указателей на строки. В качестве строки используетсяyes
. Затем объявляется переменнаяletter
и инициализируется первым указателем из массиваword[]
(то есть,word[0]
). Далее, в циклеwhile
происходит следующее:- Переменная
letter
увеличивается на единицу. - В консоль выводится текущая буква.
- Переменная
i
увеличивается на единицу. Цикл выполняется до тех пор, пока не будет достигнута конечная буква строки (то есть, пока не будет встречен нулевой символ) или пробел. После завершения цикла выводится количество букв в строке. В конце программы возвращается ноль, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д