Я пытаюсь понять поведение строки в C, и это беспокоит меня, так как мои следующие два фрагмента кода приводят к разным выводам: (Ради этого вопроса, давайте предположим, что пользователь вводит 12)
int main(void)
{
char L_Red[2];
char temp[] = "I";
printf("Enter pin connected to red: ");
scanf("%s", L_Red);
strcat(temp,L_Red);
printf("%s \n", temp);
return 0;
}
это дает: 12 как вывод (а не I12) Почему?
int main(void)
{
char L_Red[2];
printf("Enter pin connected to red: ");
scanf("%s", L_Red);
char temp[] = "I";
strcat(temp,L_Red);
printf("%s \n", temp);
return 0;
}
Это дает: I12I (а не I12) Почему?
Я прочитал о строке в C иНасколько я понимаю, я не назначаю временный фиксированный размер и не изменяю его позже для получения этих расплывчатых выводов, а также не использую строки, как они не должны.Есть ли здесь какая-то другая концепция?