Подсчитать количество символов до точки с запятой и после нее - 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);
- Затем считывается строка с помощью функции
scanfscanf(%s, s);
- Находится позиция точки с запятой во входной строке:
p = strchr(s, ';');
- Если точка с запятой найдена, то вычисляются длины отрезков до и после точки с запятой:
k = (p - s) + 1;- длина отрезка до точки с запятойi = strlen(s) - (p - s) - 1;- длина отрезка после точки с запятой
- Выводится результат:
printf(do %u posle %u, k, i);
- Завершается программа:
return 0;