Подсчитать количество символов до точки с запятой и после нее - C (СИ)
Формулировка задачи:
Задание: В строке имеется одна точка с запятой ( ; ).
Подсчитать количество символов до точки с запятой и после нее.
Помогите перевести из Pascal в Си...
uses crt; var i,k:integer; s:string; begin clrscr; writeln('stroka:'); readln(s); i:=Pos(';',s); if i>0 then k:=length(s)-i; write('до ',i-1,' posle ',k); end. readln; end.
Решение задачи: «Подсчитать количество символов до точки с запятой и после нее»
textual
Листинг программы
#include <stdio.h> #include <string.h> #define MAX_STRING_SIZE 1000 int main() { char s[MAX_STRING_SIZE], *p = NULL; size_t i = 0, k = 0; printf("stroka:\n"); scanf("%s", s); p = strchr(s, ';'); if (NULL != p) { k = (p - s) + 1; i = strlen(s) - (p - s) - 1; printf("do %u posle %u", k, i); } return 0; }
Объяснение кода листинга программы
В этом коде осуществляется подсчет количества символов до точки с запятой (;) и после нее в строке, введенной пользователем.
- Сначала подключаются необходимые библиотеки:
stdio.h
для работы с консолью (включаяprintf
иscanf
)string.h
для работы со строками (включаяstrlen
,strchr
)
- Затем объявляются переменные:
s
- строка, в которую будет считываться входная строкаp
- указатель, который будет искать точку с запятой во входной строкеi
иk
- счетчики, которые будут использоваться для подсчета символов
- После этого выводится приглашение для ввода строки:
printf(
stroka:\n);
- Затем считывается строка с помощью функции
scanf
scanf(
%s, s);
- Находится позиция точки с запятой во входной строке:
p = strchr(s, ';');
- Если точка с запятой найдена, то вычисляются длины отрезков до и после точки с запятой:
k = (p - s) + 1;
- длина отрезка до точки с запятойi = strlen(s) - (p - s) - 1;
- длина отрезка после точки с запятой
- Выводится результат:
printf(
do %u posle %u, k, i);
- Завершается программа:
return 0;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д