Помните, что это асинхронный вызов, поэтому ваш код должен быть внутри обещания.
Например:
function getJson() {
fetch("https://api.myjson.com/bins/y2v0k")
.then(function (res) {
return res.json();
})
.then(function (data) {
let minuteMarkers = [];
data.event.forEach(function (item) {
minuteMarkers.push(item.EventTimeMin);
});
createPlayer(minuteMarkers);
})
.catch(function (err) {
console.log(err);
});
}
function createPlayer(minuteMarkers) {
let player = new MediaElementPlayer("player2", {
features: [
"playpause",
"current",
"progress",
"duration",
"markers",
"fullscreen"
],
markers: minuteMarkers,
markerColor: "#00FF00",
markerCallback: function (media, time) {
alert(time);
}
});
}
getJson();
Если Вы имеете дело с простыми буквами (От A до Z или к z), то можно предположить, что коды внутренностей линейны.
Буквы кодируются как числа, между 0 и 127. A кодируется как 65, B как 66, C как 67, Z как 90.
Для смещения букв просто необходимо изменить внутренний алфавитный код, как будто это было число, так в основном просто substracting 3 от символа. Остерегайтесь пограничных случаев, хотя, потому что substracting 3 к желанию дает Вам'>' (кодируют 62), а не 'X' (кодируют 88). Можно иметь дело с ними использование "если" операторы или оператор по модулю (" % ").
Вот таблица символов ASCII для помощи Вам
После того как Вы загрузили свою строку в, можно использовать узловатый оператор для вращения при оставлении в рамках ограничений пространства A-Z.
Я отслеживал бы то, была ли буква капиталом для запуска с:
bool isCaps = ( letter >= 'A' ) && ( letter <= 'Z' );
if( isCaps )
letter -= 'A'-'a';
и затем просто сделайте сдвиг шифра как это:
int shift = -3;
letter -= 'a'; // to make it a number from 0-25
letter = ( letter + shift + 26 ) % 26;
// add 26 in case the shift is negative
letter += 'a'; // back to ascii code
наконец разрушьте с
if( isCaps )
letter += 'A'-'a';
таким образом соединение всего этого мы добираемся:
char *mystring; // ciphertext
int shift = -3; // ciphershift
for( char *letter = mystring; letter; ++letter )
{
bool isCaps = ( *letter >= 'A' ) && ( *letter <= 'Z' );
if( isCaps )
*letter -= 'A'-'a';
letter -= 'a';
letter = ( letter + shift + 26 ) % 26;
letter += 'a';
if( isCaps )
letter += 'A'-'a';
}
Выполните итерации по символам с для цикла. И сделайте то, что Вы хотите с char*. Затем отложите новый символ.
Вы оказываетесь перед необходимостью изучать циклы. Они позволят Вам повторять некоторый код по символам строки, которая является точно, в чем Вы нуждаетесь здесь. Вы сохраните целочисленную переменную, которая будет Вашим индексом в строку, и в цикле делают Ваше смещение буквы на символе в том индексе и увеличивают индексную переменную одной, пока Вы не достигаете ПУСТОГО УКАЗАТЕЛЯ.
Править: Если Вы, как ожидают, не будете знать о циклах еще в Вашем курсе, возможно, они хотят, чтобы Вы сделали это:
string[0] -= 3; // this is short for "string[0] = string[0] - 3;"
string[1] -= 3;
string[2] -= 3;
...
Это только приведет к 12 строкам кода, а не милям. Вы не должны "повторно собирать" строку этот путь, можно просто отредактировать каждый оперативный символ. Затем я держал пари после того, чтобы заставлять Вас сделать это, они покажут Вам быстрый способ сделать его с помощью циклов.
for(int i=0; i<12; i++){
string[i] = string[i] - 3;
}
Где строка является Вашим символьным массивом (строка). Там немного более включен, если Вы хотите сделать это периодическим (Т.Е. иметь A, оборачивают к Z, но вышеупомянутый код должен помочь Вам начать),
Я немного неясен, под чем Вы подразумеваете, "смещают буквы назад 3"? Это означает D ==> A?
Если так, вот простой цикл.
(Я не сделал чтения из файла или записи в файл... Это - Ваша часть),
#include <string.h>
int main(void)
{
char input[13] = "ABCDEFGHIJKL";
int i;
int len = strlen(input);
for(i=0; i<len; ++i)
{
input[i] = input[i]-3;
}
printf("%s", input); // OUTPUT is: ">?@ABCDEFGHI"
}