Я пытаюсь использовать значение ASCII "возврат каретки" в массиве символов, а затем использую printf ("% s") для печати строки, но получаю странные результаты.
Это мой код:
#include <iostream>
int main(){
char text[10];
text[0] = '1';
text[1] = '2';
text[2] = 13;
text[3] = 'n';
text[4] = '3';
text[5] = 13 ;
text[6] = '4';
printf("%s", text);
}
и вывод: 43
, но когда я добавляю один символ в массив следующим образом:
#include <iostream>
int main(){
char text[10];
text[0] = '1';
text[1] = '2';
text[2] = 13;
text[3] = 'n';
text[4] = '3';
text[5] = 13;
text[6] = '4';
text[7] = '5';
printf("%s", text);
}
, вывод 45
Затем я использую символ 10
вместо 13
, например, так:
#include <iostream>
int main(){
char text[10];
text[0] = '1';
text[1] = '2';
text[2] = 10 ;
text[3] = 'n';
text[4] = '3';
text[5] = 10 ;
text[6] = '4';
text[7] = '5';
printf("%s", text);
}
получится:
12
n3
45
Может кто-нибудь объяснить мне причина разницы между первым и вторым выходом?
Чем отличается символ 10
от символа 13
от способа, которым функция printf("%s")
справляется с ними?