Вставить в строку пробелы так, чтобы ее длина стала равной заданной - C (СИ)

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

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

никак не могу разобраться... я новичок ((( смысл понимаю, реализовать не могу

Решение задачи: «Вставить в строку пробелы так, чтобы ее длина стала равной заданной»

textual
Листинг программы
int main()
{
 char *str, *nstr; int len1, len2, len3, i, j, k, l, m, n;
 
 len1 = 11;
 len2 = 50;
 str = (char*) malloc(len1*sizeof(char));
 nstr = (char*)  malloc(len2*sizeof(char)) ;
 
 str[0] = 'a';
 str[1] = ' ';
 str[2] = 's';
 str[3] = ' ';
 str[4] = 'd';
 str[5] = ' ';
 str[6] = 'q';
 str[7] = ' ';
 str[8] = 'w';
 str[9] = ' ';
 str[10] = 'd';
 
 for(i=0;i<len1;i++)
  nstr[i]=str[i];
 
 for(k=0;k<len1;k++)
  printf("%c", nstr[k]);
 
 for(len3 = 11; len3 < len2 ; )
  for(i=0;i<len3 && len3 < len2;i++)
  {
   if (nstr[i]=='\x20')
   {
     for(j=len3-1; j>=i;j--)
     {
       nstr[j+1] = nstr[j];
     }
 
     for(k=0;k<=len3;k++)
      printf("%c", nstr[k]);
     printf("\n");
 
     len3++;
     i++;
   }
  }
 
 free(str);
 free(nstr);
 return 0;
}

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

  1. Объявлены переменные:
    • char str, nstr;
    • int len1, len2, len3, i, j, k, l, m, n;
  2. Выделена память под строку str и nstr:
    • str = (char) malloc(len1sizeof(char));
    • nstr = (char) malloc(len2sizeof(char)) ;
  3. В строку str добавлены символы 'a', ' ', 's', ' ', 'd', ' ', 'q', ' ', 'w', ' ', 'd'.
  4. Строка nstr инициализирована символами строки str:
    • for(i=0;i<len1;i++) nstr[i]=str[i];
  5. В цикле выводятся символы строки nstr:
    • for(len3 = 0; len3 < len1; len3++) printf(%c, nstr[len3]);
  6. В цикле добавляются пробелы в строку nstr:
    • for(len3 = 11; len3 < len2 ; )
    • for(i=0;i<len3 && len3 < len2;i++)
    • if (nstr[i]=='\x20')
    • {
      • for(j=len3-1; j>=i;j--)
      • {
      • nstr[j+1] = nstr[j];
      • }
      • for(k=0;k<=len3;k++)
      • {
      • printf(%c, nstr[k]);
      • }
      • printf(\n);
    • len3++;
    • }
  7. Освобождена память, выделенная под строки str и nstr:
    • free(str);
    • free(nstr);
  8. Возвращено значение 0, что означает успешный конец работы программы.
    • return 0;

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


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

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

14   голосов , оценка 3.857 из 5
Похожие ответы