Typedef строка - C (СИ)
Формулировка задачи:
Листинг программы
- #include <stdio.h>
- typedef char string[100]; // эта строка обязательна (по заданию)
- void concat(string *s1, string *s2)
- {
- while(*s1) s1++;
- while(*s2)
- {
- *s1=*s2;
- s1++;
- s2++;
- }
- }
- void main (void)
- {
- string str1[100]={"Some text"};
- string str2[100]={" and some other text."};
- concat(str1,str2);
- printf("%s\n", str1);
- }
Листинг программы
- *s1=*s2;
Хотелось бы увидеть примеры использования строк (и указателей на них) определенных таким образом
Листинг программы
- typedef char string[100];
Решение задачи: «Typedef строка»
textual
Листинг программы
- void concat(string *s1, string *s2)
- {
- char *c1 = *s1, *c2 = *s2;
- while (*c1) c1++;
- while (*c2)
- {
- *c1 = *c2;
- c1++;
- c2++;
- }
- }
Объяснение кода листинга программы
В данном коде реализован алгоритм конкатенации двух строк. Он работает следующим образом:
- Входные данные: два указателя на начало строк
s1
иs2
. - Переменные
c1
иc2
инициализируются значениями указателейs1
иs2
соответственно. - В цикле, пока
c1
не станетNULL
(т.е. не достигнет конца строкиs1
), выполняются следующие действия: a. Значение*c1
присваивается значению*c2
(т.е. текущему символу строкиs2
). b.c1
увеличивается на 1. c.c2
увеличивается на 1. - Результатом работы функции является объединение исходных строк в одну, где первая строка идет после второй.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д