puts
Источник https://proproprogs.ru/c_base/c_vvod-vyvod-strok-v-standartnye-potoki
Функция puts()
Эта функция определена в файле <stdio.h>
Она работает быстрее, чем функция printf()
1
2
char str[] = { 'B', 'a', 'l', 'a', 'k', 'i', 'r', 'e', 'v', '\0' };
puts( str );
Функция fgets()
char* fgets(char* buf, int max_len, FILE* stream);
1
2
char bf[ 10 ];
fgets( bf, sizeof( bf ), stdin ); // читаем данные из входного потока
Функция fgets формирует корректную строку, то есть, автоматически добавляет символ конца строки после последнего прочитанного символа /0
Серёжа мне прислал свой код
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <stdio.h>
#include <string.h>
int match_ab(const char a, const char b)
{
int aa = a, bb = b;
if('0' <= a && a <= '9')
aa -= 255;
if('0' <= b && b <= '9')
bb -= 255;
return aa < bb;
}
void sort_string(char *str, size_t max_len, int (*match)(const char, const char))
{
for(size_t i = 0; i < max_len; ++i) {
size_t pos = i;
char ch_min = str[pos];
for(size_t j = i+1; str[j] != 0; ++j) {
if(!match(ch_min, str[j])) {
ch_min = str[j];
pos = j;
}
}
if(pos != i) {
char t = str[i];
str[i] = str[pos];
str[pos] = t;
}
}
}
int main(void)
{
char str[100] = {0};
fgets(str, sizeof(str)-1, stdin);
char* ptr_n = strrchr(str, '\n');
if(ptr_n != NULL)
*ptr_n = '\0';
sort_string(str, strlen(str), match_ab);
puts(str);
return 0;
}
This post is licensed under CC BY 4.0 by the author.
