K&R (77). Функция, разворачивающая строку наподобие a-z

Решение задач на языке программирования C

Ответ к упражнению 3.3. Упрощенная версия.

Программа разворачивает строку наподобие a-z в строку abc...xyz. Если первая строка некорректно записана (например, z-a или oiy), то вторая строка содержит только символ конца строки.

#include <stdio.h>
 
int expand (char s[], char s1[]);
 
main () {
	int i;
	char str[3], str1[50];
 
	i = 0;
	while (i < 3) {
		str[i] = getchar();
		i++;
	}
	str[i] = '\0';
 
	expand(str, str1);
 
	printf("%s\n", str1);
}
 
int expand (char s[], char s1[]) {
	int c1, c2, i;
 
	i = 0;
	if (s[1] == '-' && s[0] < s[2]) {
		c1 = s[0];
		c2 = s[2];
		while (c1 <= c2) {
			s1[i] = c1;
			++i;
			++c1; 
		}
	}
	s1[i] = '\0';
}