Хорошо, вам нужно провести расследование.Как правило, мы не делаем домашнее задание для людей, поскольку:
- это обман.
- вы, вероятно, попадетесь, если будете копировать дословно.
- это не поможет вам в долгосрочной перспективе.
Вызов библиотеки C для пользовательского ввода, который вы должны использовать, - fgets
, в строке:
char buffer[100];
fgets (buffer, sizeof(buffer), stdin);
Это введет строку в массив символов, называемый буфером.
Если вы сделаете это с двумя разными буферами, у вас будут строки в памяти.
Тогда вам нужносоздавать указатели на них и проходить через две строки, выводя чередующиеся символы.Указатели не являются легкой темой, но следующий псевдокод может помочь:
set p1 to address of first character in string s1
set p1 to address of first character in string s1
while contents of p1 are not end of string marker:
output contents of p1
add 1 to p1 (move to next character)
if contents of p2 are not end of string marker:
output contents of p2
add 1 to p2 (move to next character)
while contents of p2 are not end of string marker:
output contents of p2
add 1 to p2 (move to next character)
Перевод этого в C потребует некоторой работы, но алгоритм надежен.Вам просто нужно знать, что указатель символа может быть определен с помощью char *p1;
, получение его содержимого осуществляется с помощью *p1
, а его продвижение - p = p + 1;
или p1++;
.
Недостаточно написаниякод для вас (который я не собираюсь делать), вероятно, вам не нужно больше ничего.