Typedef строка - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Листинг программы
  1. #include <stdio.h>
  2. typedef char string[100]; // эта строка обязательна (по заданию)
  3. void concat(string *s1, string *s2)
  4. {
  5. while(*s1) s1++;
  6. while(*s2)
  7. {
  8. *s1=*s2;
  9. s1++;
  10. s2++;
  11. }
  12. }
  13. void main (void)
  14. {
  15. string str1[100]={"Some text"};
  16. string str2[100]={" and some other text."};
  17. concat(str1,str2);
  18. printf("%s\n", str1);
  19. }
Пишет ошибку: Выражение должно быть допустимым для изменения левосторонним значением
Листинг программы
  1. *s1=*s2;
Хотелось бы увидеть примеры использования строк (и указателей на них) определенных таким образом
Листинг программы
  1. typedef char string[100];

Решение задачи: «Typedef строка»

textual
Листинг программы
  1. void concat(string *s1, string *s2)
  2. {
  3.   char *c1 = *s1, *c2 = *s2;
  4.  
  5.   while (*c1) c1++;
  6.  
  7.   while (*c2)
  8.   {
  9.     *c1 = *c2;
  10.     c1++;
  11.     c2++;
  12.   }
  13. }

Объяснение кода листинга программы

В данном коде реализован алгоритм конкатенации двух строк. Он работает следующим образом:

  1. Входные данные: два указателя на начало строк s1 и s2.
  2. Переменные c1 и c2 инициализируются значениями указателей s1 и s2 соответственно.
  3. В цикле, пока c1 не станет NULL (т.е. не достигнет конца строки s1), выполняются следующие действия: a. Значение *c1 присваивается значению *c2 (т.е. текущему символу строки s2). b. c1 увеличивается на 1. c. c2 увеличивается на 1.
  4. Результатом работы функции является объединение исходных строк в одну, где первая строка идет после второй.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.75 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут