Объединение слов - C (СИ)

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

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

Доброго времени суток! есть массив
char* argvs[]={"Hello",NULL};
Я с клавиатуры ввожу "world" с помощью argv[1] Далее мне нужно объединить эти записи в одну запись без пробелов. Читал про sprintf, сделать не получилось. Что подскажете? Работать только с char.

Решение задачи: «Объединение слов»

textual
Листинг программы
char* argvs[] = {"Hello"};
char result[100];
 
strcat(strcpy(result, argvs[0]), argv[1]);

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

В данном коде:

  1. Создается массив из одного элемента, содержащего слово Hello, с помощью команды char* argvs[] = {Hello};
  2. Создается пустая строка, в которую будут добавляться слова, с помощью команды char result[100];
  3. С помощью функции strcpy() в пустую строку копируется первое слово из массива argvs[], т.е. Hello, с учетом того, что Hello - это константа, а result - это переменная, поэтому Hello будет копироваться в result.
  4. С помощью функции strcat() к содержимому переменной result добавляется второе слово из массива argvs[], т.е. также Hello.
  5. В результате в переменной result будет содержаться два слова HelloHello. Но стоит отметить, что данный код не обрабатывает ошибки и работает только в случае, если в массиве argvs[] содержится хотя бы одно слово и вызов функций strcpy() и strcat() не приведет к переполнению буфера.

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

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