plt.minorticks_off()
Выключает em!
Чтобы изменить их количество / положение, вы можете использовать параметр
subsx
. например:plt.xscale('log', subsx=[2, 3, 4, 5, 6, 7, 8, 9])
Из docs :
subsx / subsy: где размещать субтитры между каждым основным тиком. Должна быть последовательность целых чисел. Например, в шкале log10: [2, 3, 4, 5, 6, 7, 8, 9]
поместит 8 логарифмически разнесенных мелких тиков между каждым основным тиком.
BLOCKQUOTE>
Просто пройдите всю строку и поместите каждый символ на свое место. Не забывайте, что строка «ABC» занимает четыре байта.
Когда вы просматриваете символы входной строки, выходная строка которой они вводят, выглядит следующим образом:
0, 0, 0, 1, 1, 1, 2, 2, 2 , 3, 3, 3
blockquote>Это
i/3
. Схема положения, в котором они находятся на выходе, выглядит следующим образом:0, 1, 2, 0, 1, 2, 0, 1, 2, 0, 1, 2
blockquote>Это
i%3
. Таким образом, еслиi
является позицией во входной строке, позиция в выходном массиве будет[i/3][i%3]
. Таким образом:#include <stdio.h> #include <string.h> #define MAX 512 int main(){ char str[MAX]="ABCDEFGHIJKL"; int count=0, i=0; char sub[3]; char arr[MAX/3][4]={}; /* Go through the string putting each character in its proper place */ for (int i = 0; i < strlen(str); ++i) arr[i/3][i%3] = str[i]; /* Print the strings out */ for (int i = 0; i < (strlen(str) / 3); ++i) printf("%s\n", arr[i]); }
ABC
blockquote>
DEF
GHI
JKL
С помощью %3c
можно сканировать три символа. Это не завершает массив нулем, поэтому нельзя использовать ни одну из строковых функций, ожидающих этот нулевой терминатор. Спецификатор %n
возвращает количество символов, обработанных при сканировании.
Печать можно выполнить, ограничив количество символов с помощью поля точности в %.3s
#include <stdio.h>
#include <stdlib.h>
int main( void) {
char str[]="ABCDEFGHIJKL";
int count = 0;
int span = 0;
int used = 0;
char arr[6][3]={};
while ( count < 6 && 1 == sscanf ( str + span, "%3c%n", &arr[count][0], &used)) {
count++;
span += used;//accumulate number of scanned characters
}
while ( count) {
count--;
printf ( "%.3s\n", arr[count]);//print up to three characters
}
return 0;
}