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++;
  }
}

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

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

  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