Добавление символа к строке в C без библиотек

Всем привет. Допустим есть строка ”Hello World”. Можно ли добавить в конец строки символ ! без использования библиотек и как это сделать. Я только начинаю изучать этот язык. Заранее спасибо.


Ответы (2 шт):

Автор решения: karaname
#include <stdio.h>

int main(void)
{
    char str[] = "Hello";
    int i;

    for (i = 0; str[i] != '\0'; i++);
    str[i] = '!';
    printf("%s\n", str); // Hello!

    return 0;
}
→ Ссылка
Автор решения: AlexGlebe
// gcc -Wall -std=c11 -Os stradd.c -o stradd
# include <stdio.h>
char  const hw [ ] = "Hello, world"  ;
char  const ac [ ] = "!" ;
int main  ( ) {
  char  result [ sizeof  ( hw  ) + sizeof  ( ac  ) - 1 ] ;
  char  * j = & ( result [ 0 ] ) ;
  char  const * i = & ( hw [ 0 ] ) ;
  // копируем строку до символа конца строки '\00'
  do  {
    ( * j ) = ( * i ) ;
    ++  i ;
    ++  j ;
  } while ( * i ) ;
  i = & ( ac [ 0 ] ) ;
  // затем продолжаем копировать дальше другую строку
  do  {
    ( * j ) = ( * i ) ;
    ++  i ;
    ++  j ;
  } while ( * i ) ;
  // ставим конец строки сами
  ( * j ) = '\00' ;
  printf("\"%s\" + \"%s\" = \"%s\"\n",hw,ac,result); }

результат :

> ./stradd 
"Hello, world" + "!" = "Hello, world!"
→ Ссылка