Дана строка состоящая из слов, разделенных запятыми. Определить порядковый номер слова минимальной длины - C (СИ)
Формулировка задачи:
Дана строка состоящая из слов, разделенных запятыми. Определить порядковый номер слова минимальной длины и количество символов в этом слове.
Строка задается в качестве параметра командной строки.
Решение задачи: «Дана строка состоящая из слов, разделенных запятыми. Определить порядковый номер слова минимальной длины»
textual
Листинг программы
#include <stdio.h>
void main(int npar, char *par[]) {
int m, mi;
int ind, len, i;
char *p;
p=par[1];
printf("%s\n", p); \\ печать входной строки
m = 0;
mi = -1;
ind=0;
len=0;
for(i=0; p[i]!='\0'; i++) {
if(p[i]!=',') {
len++;
} else {
if(mi==-1 || len < m) {
m = len;
mi = ind;
}
ind++;
len = 0;
}
}
printf("%d %d\n", m, mi);
}
Объяснение кода листинга программы
В этом коде:
- Вводится строка, которая передается как аргумент функции main в виде массива символов.
- Создаются переменные для хранения количества слов и индекса слова минимальной длины: m, mi.
- Инициализируются переменные ind, len, i, p.
- Строка передается в переменную p.
- В цикле for перебираются все символы строки.
- Если текущий символ не запятая, то увеличивается счетчик len.
- Если текущий символ запятая, то проверяется, является ли текущая длина слова минимальной.
- Если минимальная длина слова обновляется, то обновляются значения переменных m, mi.
- После окончания цикла выводятся значения переменных m, mi.