Как да четем низ в 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.
Внимание
Не се опитвайте да компилирате този код. Той е предназначен само за демонстриране на функциите. Това не е кохерентна програма и ще дава грешки при компилиране.