Як прочитати рядок на C. Мова програмування C не надає фактичного типу рядкових даних. У C рядок емулюється масивом символів, який закінчується на NULL. Такий масив може бути оголошений статично або як вказівник. Стандартний C надає багато функцій для маніпулювання символьними масивами або рядками C. Ця стаття присвячена функціям, які зчитують з вхідного потоку та файлів. Дотримуйтесь цих порад, щоб дізнатися, як читати рядок на C.
Крок 1
Зрозуміти основи. Рядок C — це масив діаграми типів. Як і в усіх масивах C, перший елемент індексується як 0, а останній — «довжина рядка мінус 1». Зазвичай компілятор вставляє NULL в останнє місце, тому рядок може містити "довжина рядка мінус 1" елементів. Null еквівалентно 0x00 у цілочисельній формі та '\0' у формі символів. Доступ до елементів здійснюється за допомогою оператора «[]». Крок 2 ілюструє ці поняття.
Відео дня
Крок 2
Додайте "директиву включення" нижче до будь-якого вихідного файлу перед використанням функцій цього посібника:
#include < stdio.h >
Крок 3
Оголосити рядок C. Наведений нижче код показує оголошення з використанням статичного методу та методу покажчика:
// статичне оголошення char str[50] = {0}; // скорочений спосіб ініціалізації всіх елементів до 0 // str[49] є NULL // str має місткість 48 символів // оголошення за допомогою покажчика char pStr = NULL; // немає виділення пам'яті pStr = (char)malloc (50); // це робиться за допомогою "malloc()"
Крок 4
Зчитування даних у рядок C за допомогою "scanf()", який зчитує серію рядків, відокремлених пробілом від стандартних введення та розміщує їх в адресах, що належать до відповідних опорних змінних, відповідно до "формату рядок":
int n; printf("Введіть своє ім'я та вік: "); scanf("%s%d", str, &n); // printf("Ваше ім'я %s і ви %d старий\n", str, n);
Крок 5
Помістіть дані в рядок C, використовуючи простішу функцію "gets()", яка зчитує дані зі стандартного введення лише в рядок:
printf("Введіть своє прізвище: "); отримує (str); printf("Ваше ім'я %s\n", str);
Крок 6
Прочитати дані файлу в рядок C за допомогою «fscanf()»; ця функція аналогічна "scanf()":
ФАЙЛ* pФайл; pFile = fopen("myFile.txt", "r"); // припустимо, що файл існує і містить дані if (NULL != pFile) { fscanf (pFile, "%s", str); printf("Перше слово у файлі %s\n", str); fclose (pFile); }
Крок 7
Повторіть крок 5, використовуючи "fgets(),", який працює так само, як "gets()":
ФАЙЛ* pФайл; pFile = fopen("myFile.txt", "r"); if (NULL != pFile) { fgets (pFile, str); printf("Перше слово у файлі %s\n", str); fclose (pFile); }
Речі, які вам знадобляться
C/C++ IDE або компілятор C
Книга про C, наприклад «Мова програмування C» Брайана В. Керніган
Порада
Щоб дізнатися більше про згадані функції, відвідайте веб-сайт C Plus Plus.
Увага
Не намагайтеся скомпілювати цей код. Він призначений лише для демонстрації функцій. Це не узгоджена програма, і під час компіляції видаватиме помилки.