#c #pointers #compiler-errors
#c #указатели #ошибки компилятора
Вопрос:
Я хочу создать программу, которая объединяет несколько слов, введенных с клавиатуры, в одну строку. Однако я получаю ошибку компиляции. Содержимое программы.
-
Количество вводимых слов установлено равным 4 в макросе NUM.
-
Длина вводимого слова должна составлять не более 20 символов (включая нулевые символы). Для ввода используется двумерный массив символов.
-
Переменная для новой строки представляет собой одномерный массив символов типа newstr .
-
Соедините введенные слова, чтобы создать новую строку newstr с пробелом между словами.
-
Вставьте один период в конце строки newstr (без пробела; см. Пример выполнения).
-
Распечатайте созданный newstr целиком с помощью printf . В это время не вставляйте пробелы или точки в printf. Наконец, отображается количество символов newstr (включая пробел), и процесс завершается (см. Пример выполнения).
-
Вы можете использовать функции strcpy и strlen . Функция strcpy — это функция, которая копирует строку символов, указанную во втором аргументе, после адреса, указанного в первом аргументе. Функция strlen — это функция, которая возвращает длину символьной строки (не включая нулевые символы). При его использовании сначала включите string.h .
Источник
#include <stdio.h>
#include<stdlib.h>
#include<string.h>
#define NUM 4
int main ()
{
char str2 [NUM] [20]; / * Character array for input * /
char newstr [100]; / * Character array for output * /
int i;
printf ("Input% d words: n", NUM);
for (i = 0; i <NUM; i ) {
printf ("% s", str2 [i]); / * Print original string * /
}
for (i = 0; i <NUM; i ) {
strcpy (newstr [i], str [i]);
if ('A' <= str2 [i] [0] amp;amp; str2 [i] [0] <='Z')
newstr [i] [0] = str2 [i] [0] 32;
// else break;
printf ("% s n", newstr [i]);
}
// newstr [i] = * prefix str [i];
// for (i = 0; i <NUM; i ) {
// printf ("% s n", newstr [i]); / * Display newly created string * /
//}
return 0;
}...
Ошибка
Комментарии:
1. На первый взгляд: — strcpy() определен в string.h, поэтому включите это.
2. Предупреждения и ошибки довольно просты. Почему бы вам не решить это один за другим?
3. Пожалуйста, укажите описательный заголовок и добавьте соответствующую информацию в тело. Ваша нумерация 5.3 не имеет смысла ни для кого, кроме вас. Также описание вашей задачи не имеет значения, поскольку ошибка компилятора не заботится о цели или вашей программе. Ограничение соответствующей информации привлечет больше читателей, поскольку им не нужно пробираться через страницу текста, чтобы узнать, что это вообще не связано с вашей ошибкой.
4. Я редактирую исходный код. Посмотрите на это!
Ответ №1:
Не могу просто написать комментарий, потому что недостаточно репутации, но в вашей ошибке компилятора указано включить <string.h> . Надеюсь, это все, что вам нужно.
Комментарии:
1. В OP тоже есть некоторые орфографические ошибки, ошибки вполне понятны.
2. Ошибки компилятора говорят немного больше, чем только это.